Могу ли я выполнить скалярный запрос в EF 4.1? - PullRequest
0 голосов
/ 05 марта 2012

Можно ли выполнить скалярный запрос, используя EF 4.1?

Я пробовал:

     ObjectQuery<int> query = new ObjectQuery<int>("select count(*) from myTable", _context);
     var result = query.Execute(MergeOption.NoTracking);
     return result.FirstOrDefault();

, но он возвращает ошибку: The query syntax is not valid. Near term '*'

Является ли единственный способ выполнить скалярный запрос для вызова хранимого процесса?

1 Ответ

1 голос
/ 05 марта 2012

Мне кажется, что вы рассматриваете структуру сущностей как "ADO.net 2.0", а не как ORM, как она есть.

Вместо того, чтобы использовать его для выполнения SQL-запросов, я бы рекомендовал использовать стандартную сущностную среду Data Container и использовать запрос LINQ, как это предусмотрено в Entity Framework. Тогда это будет просто что-то вроде

    myDataContainerInstance.myTable.Count()

ObjectQuery не аналогичен команде ADO.net и не выполняет операторы SQL. Вместо этого он используется для непосредственного определения запросов к объектной модели. (*) Недопустим, потому что это не SQL.

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