Кто-нибудь знает, как навсегда ограничить набор результатов EntityFramework?Я говорю о чем-то вроде этого Условное отображение .Это именно то, чего я хочу достичь, за одним исключением: я хочу сделать это программно.Это потому, что значение условия будет передано в EF только при создании контекста.Кроме того, я не хочу, чтобы этот столбец исчез из картографирования.
Я знаю, как этого добиться с помощью EF2.0 и рефлексии.Я использовал CreateQuery()
метод для генерации моего ObjectQuery
.CreateQuery()
позволяет вводить мой собственный запрос ESQL с дополнительным условием, например, WHERE TABLE.ClientID == value
.
Проблема с EF40 заключается в том, что больше нет ObjectQuery
, но только ObjectSet
и CreateQuery()
не используются.Я не знаю, как внедрить свой собственный запрос ESQL.
Причина, по которой я хочу ограничить наборы результатов, заключается в том, что я хочу отделить данные клиентов друг от друга.Это разделение должно выполняться автоматически внутри контекста, чтобы программистам не приходилось добавлять условие .Where(x => x.ClientID == 5)
к каждому отдельному запросу.
Возможно, мой подход совершенно плох - но я не знаю альтернативы.