在我的数据库中,我定义了一些函数,假设它被称为fnTest
. 是否可以从我的 LINQ/EF 查询中调用该函数?像这样的东西:
var param3, param4;
var res = (from x in db.Something
where x.field1 > 0
orderby fnTest(x.f1, x.f2, param3, param4)
select x).Take(20);
如您所见,我需要该函数在 DB 端执行,因为我需要使用它返回的值对数据进行排序。前两个参数是表中的字段,后两个参数是一些在程序中会改变的数字,但对于每个查询都是不变的。
是否可以以某种方式调用已经在数据库中创建的函数?还是我需要使用这样的东西:
((IObjectContextAdapter) context).ObjectContext.CreateQuery
并手动编写查询?