Я только что справился с помощью этой статьи (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));