Re[5]: Работа с ORM
От: Gengzu  
Дата: 26.07.11 08:00
Оценка:
Z>С этого места подробнее. Сколько было сущностей, как абстрагированы и сколько всего пришлось переделать за пределами абстракций.

С десяток сущностей. Много отношений много-ко-многим. Изначально использовался EF 4.0, как маппер. После EF 4.1 CodeFirst, в итоге перешли на NHibernate, так как гибкости EF в маппингах сильно не хватало.

G>>что есть навигационный доступ?


Z>
Z>foreach (var orderLine in order.Lines)
Z>  foreach (var good in orderLine.Goods)
Z>  {
Z>    good.Manufacturer.Score++;
Z>  }
Z>


не понимаю к чему это.
изменение Score у вложенной сущности? как бы это выглядело в вашем случае?

Z>Он отлично реализован в .net через ExpressionTree. Именно его я и советую применять выставляя наружу IQueryable.


всё что необходимо скрыть, нужно скрывать. в данном случае IQueryable остаётся и никому не мешает в силу лени создания экстеншин метода, написать сразу запрос по месту.

другое дело, если ваше приложение получит доп. уровень абстракции, и данные будут выгребаться через веб-сервисы. в случаи нормального абстрагирования, нужно будет переписать лишь репозитории, и IQueriable там увы не подойдёт.

но всё сильно от задачь зависит. в HomePage такие абстракции лишние.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.