Я использую шаблон репозитория с linq для sql, я использую класс репозитория для таблицы. Я хочу знать, я делаю в хорошем/стандартным способом,Linq to sql Образец репозитория, Некоторые вопросы
ContactRepository
Contact GetByID()
Contact GetAll()
COntactTagRepository
List<ContactTag> Get(long contactID)
List<ContactTag> GetAll()
List<ContactTagDetail> GetAllDetails()
class ContactTagDetail
{
public Contact Contact {get;set;}
public ContactTag COntactTag {get;set;}
}
Когда мне нужен контакт я называю метод contactrepository, то же самое для contacttag
, но когда мне нужен контакт и теги вместе, я вызываю GetDetais() в репозитории ContactTag, не возвращая объект COntactTag созданный orm, установил возвращаемый объект ContactTagDetail, координирующий как COntact, так и COntactTag, сгенерированные orm, я знаю, что могу просто вызвать GetAll в репозитории COntactTag и получить доступ к Contact.ContactTag, но в качестве его linq для sql он не будет иметь возможности для отложенной нагрузки на уровне запросов, поэтому всякий раз, когда мне нужна сущность со связанным объектом, я создаю класс проецирования
Еще одно сомнение в том, что мне действительно нужно право на метод, который я могу сделать в обоих контактах & ContactTag repostitory как в контактном репозитории GetALlWithTags () или что-то, но я делаю это в репозитории COntactTag
Каковы ваши предложения?
его хорошо, но когда у меня есть хранилище со многими связанными сторонами, где я буду писать вставки/удаления и т.д. методы, – MindlessProgrammer
вы могли бы поместите их все в один репозиторий, если они связаны как «единица работы». –