Re[4]: Linq и ассоциации
От: Flem1234  
Дата: 23.11.10 19:31
Оценка: 33 (1)
Здравствуйте, IT, Вы писали:

C>>
C>>db.Pays.Where(pay => pay.Amount > 100).WithAssociation(bill_associatiation).WithAssociation(customer_associatiation);
C>>


IT>Мне больше нравится вариант EF с Include. Но вопрос не в этом. Вопрос в том, как подгружать ассоциации. Есть несколько вариантов:


В EF Include принимает строку (вроде). Хотелось, чтобы была типизация, т.е. в имени ассоциации нельзя было ошибиться.

Мда, хорошего универсального решения не просматривается.
Можно реализовать все три (начать с самого простого или самого универсального) и назвать методы

IncludeWithManyQueries(...)
IncludeWithBatchQueries(...)
IncludeWithHeavyQuery(...)
IncludeWithWideResult(...)


И пусть пользователь сам принимает решение, как ему получать данные из БД.
Хотя я не уверен — главный аргумент против третьего, со вторым запросом для связанных таблиц, это тяжесть получаемого запроса. Окажется ли это хуже, чем первые два варианта на тех же данных, хоть в каком-то случае? Не настолько хорошо разбираюсь в БД, чтобы судить об этом.
Потом можно будет создать Include, который реализует какую-то стратегию выборки или оставить все как есть.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.