Я использую EF вместе с mvc, для этого у меня есть общий репозиторий, реализация unitOfWork на основе ObjectContext, без проблем с CRUD. Мне просто интересно, как я могу/должен обрабатывать сценарии, где мне нужно сделать соединение с сущностями.Как обрабатывать сценарии слияния sql
ответ
Есть несколько способов справиться с ситуацией. Соединения не нужны в большинстве ситуаций и вообще избегаются в EF.
var orders = orderRepository.GetAll();
var projection = orders.Where(o => o.Customer.Name == "Foo")
.Select(o => new { o, o.Customer });
Generic Repository - это нечеткая абстракция. Реализовать конкретный репозиторий для каждого объекта и создать метод, который соединяет и возвращает результат.
. Проникающая абстракция. Я согласен с вами, но по крайней мере у нас все еще есть возможность для явных репозиториев, если мы столкнемся с такой проблемой в будущем. – afr0
so .select - это способ сделать соединение правильно? – afr0
@ user1162274 На самом деле вы сообщаете, что вам нужно, и EF будет делать соединения при необходимости :) – Eranga
В целом выбор с помощью соединений может быть достигнут с помощью LINQ, но можете ли вы добавить пример гипотетического запроса или действия, которое вы хотите выполнить, чтобы добавить некоторый контекст? – Nope
нет конкретного контекста в виду, просто выясняя, как нарушить реализацию ObjectCotnext. – afr0