При использовании Entity Framework Где этот синтаксис возвращает все записи локально перед выполнением - PullRequest
0 голосов
/ 28 ноября 2011
db.AdDetails.Where( u => u.OwnerGUID == CurrentUserProviderKey)

У меня есть таблица adDetails с полем OwnerGUID.

Я хочу получить только те рекламные данные, которые принадлежат пользователю, вошедшему в систему.

Мой запросне показывает никаких предложений where в SQL, когда я смотрю на него в отладчике.

Может кто-нибудь помочь мне выяснить, что не так с моим утверждением, и если все строки в таблице будут возвращены, тогда все 10Kзаписи, размещенные где-то на веб-сервере?

Я действительно новичок в этом.

1 Ответ

0 голосов
/ 28 ноября 2011

Использование метода расширения Where отфильтрует результаты.

Запросы в Entity Framweork не выполняются, пока вы не выполните их итерацию. Если вы делаете:

var query = db.Where(u => u.OwnerGUID == key);

Это не выполняет запрос. Когда вы делаете следующее:

var list = list.ToList(); 

OR

foreach( var item in query) { ... }

Это когда запрос будет выполнен в SQL. На этом этапе результаты должны быть отфильтрованы по предложению WHERE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...