Как посчитать, сколько объектов будет возвращено ObjectQuery <T>? - PullRequest
1 голос
/ 21 октября 2008

Я строю ObjectQuery следующим образом:

        string query = "select value obj from Entities.Class as obj " +
                       "where obj.Property = @Value";

        ObjectQuery<Class> oQuery = new ObjectQuery<Class>(query, EntityContext.Instance);
        oQuery.Parameters.Add(new ObjectParameter("Value", someVariable));

Теперь я могу назначить этот объект в качестве источника данных для элемента управления, или выполнить итерацию с циклом foreach, или даже принудительно выполнить материализацию в List, однако я могу подсчитать количество объектов, которые будут возвращены, без форсирования

Нужно ли мне создавать сопутствующий запрос, который будет выполнять count (), или есть функция, которая сделает это для меня где-нибудь?

Спасибо.

Ответы [ 3 ]

3 голосов
/ 21 октября 2008

ObjectQuery<T> реализует IQueryable<T>, поэтому вы не можете просто использовать метод расширения:

int count = oQuery.Count();

Что произойдет, если вы выполните это? Я ожидал бы, что весь запрос просто выполнит Count () ... (не то, чтобы я сделал много EF ...).

1 голос
/ 21 октября 2008

Класс ObjectQuery реализует интерфейс IEnumerable , который поддерживает метод Count ().

Что вы получаете от этого?

int count = oQuery.Count();
0 голосов
/ 02 марта 2010

Если счетчик меньше 1, значит, он нашел новую запись, если нет, он уже имеет эту запись.

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