Entity Framework Core: пользовательские функции SQL - PullRequest
0 голосов
/ 29 апреля 2018

Можно ли вызвать пользовательскую функцию SQL из интерфейса запросов в EF Core? Например, сгенерированный SQL будет выглядеть как

select * from X where dbo.fnCheckThis(X.a, X.B) = 1

В моем случае это предложение является дополнением к другим вызовам метода Query (), поэтому FromSQL () не является опцией.

1 Ответ

0 голосов
/ 02 августа 2018

Я только что справился с помощью этой статьи (H / T @ IvanStoev за его комментарий к вопросу).

В вашем DbContext классе:

[DbFunction("my_user_function_name")]
public static bool SatisfiesMyUserFunction(int i)
{
    throw new Exception(); // this code doesn't get executed; the call is passed through to the database function
}

Обратите внимание, что функция должна находиться в классе DbContext, даже если она статическая.

Затем создайте миграцию базы данных и определите пользовательскую функцию в скрипте.

Использование:

var query = db.Foos.Where(f => MyDbContext.SatisfiesMyUserFunction(f.FieldValue));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...