Я пытаюсь что-то похожее на это:Entity Framework 6 Code First пользовательских функций
How to use scalar-valued function with linq to entity?
Однако я не использую EDMX, но вместо этого просто DbContext и код первого.
Я пришел через это:
https://codefirstfunctions.codeplex.com/
Но использование не подходит. То, что я пытаюсь добиться, чтобы быть в состоянии сделать это:
var locations = context.Locations.Where(e => Functions.LatLongDistanceCalc(e.Lat, e.Long, lat, long) >= 10)
Где будем называть скалярную функцию (LatLongDistanceCalc) на SQL Server.
Есть ли способ сделать это без использования EDMX? Я знаю, что вы можете создать ручной запрос, но это не было бы предпочтительным, потому что я хочу вернуть объекты с ленивыми прокси-серверами и т. Д., А также создать более сложный запрос.
Я не уверен, как я этого не получил раньше, но это работает на 100%. Спасибо вам! – AndrewC
Я хотел бы добавить, что это работает, если вы находитесь в пределах select/context. Если вы находитесь вне этого - это не сработает. –
Я пытался использовать его с помощью функции Max, которую я создал, никаких входных параметров и пока не удался. Я всегда получаю исключение NotSupportedException. – yopez83