Импортированная функция в Entity Framework Где предложение? - PullRequest
0 голосов
/ 29 июня 2009

Можно ли использовать функцию импорта в предложении where в платформе сущностей? Я пробовал следующее, но я получаю довольно загадочное исключение, к которому я не могу найти никакой информации о:

var q = MyContext.MyEntities.Where("MyContext.MyFunction(it.ID)")

(функция установлена ​​для возврата логического значения)

System.Data.EntitySqlException: «MyContext.MyFunction» не может быть преобразован в допустимый конструктор типа или функцию., Вблизи предиката WHERE, строка 6, столбец 21 ..

Привет

Lee

Ответы [ 2 ]

1 голос
/ 30 июня 2009

Запрос, который вы пытаетесь написать, состоит в создании вызова FunctionImport с запросом через EntitySet.

Но поскольку FunctionImports являются обертками вокруг StoredProcedures, которые не поддаются компоновке, это просто не сработает.

Для того, чтобы что-то подобное работало, теоретически функция должна быть оберткой вокруг чего-то, что можно компоновать, например TVF (функция табличного значения). Но, к сожалению, TVF сегодня не поддерживаются в Entity Framework.

Alex

0 голосов
/ 29 июня 2009

Не думаю, что вы хотите передать это выражение в виде строки. Вы хотите правильное лямбда-выражение вроде:

MyContext.MyEntities.Where (entity => MyContext.MyFunction (entity.ID));

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