Может кто-нибудь подсказать, пожалуйста, как включить предложение where
в запрос linq to sql
при использовании платформы сущностей с include
У меня есть следующий запрос:
var test = this.MyContext.MyData
.Include("MoreData")
.Include("EvenMoreData")
.Where(predicate)
Где предикат определяется следующим образом:
t => t.id == myId
Проблема заключается в том, что он, кажется, не включает предложение Where
в запрос SQL, когда я проверяю его через SQL Server Profiler, что приводит к очень медленному запросу, так как он возвращает 450k + записей вместо 7 в моем конкретном пример.
Любые идеи о том, как я могу включить предложение where
в запрос, сгенерированный EF
.
UPDATE-1:
Странно, но при замене предиката переменная устанавливается следующим образом:
private MyObject Get(Func<MyObject, bool> predicate)
...
this.UnitOfWork.MyObject.Get(t=>t.id == myId);
по
var test = this.MyContext.MyData
.Include("MoreData")
.Include("EvenMoreData")
.Where(t=>t.id = 1234)
Оператор where включается и данные возвращаются мгновенно.