Linq to entity - 从查询中调用用户定义的方法

eka*_*808 4 linq entity-framework-4

在我的项目中,我使用几个linq查询来获取价格列表.我需要根据这些价格计算价值.

是否可以直接从linq查询中调用用户方法(理想情况下,可以在实体类中),例如,这样做会很完美

from foo in Foo
select new {
  price = foo.Price,
  priceclass = foo.GetClassOfPrice()
}
Run Code Online (Sandbox Code Playgroud)

GetClassOfPrice没有数据访问权限,只有基于价格的静态代码.

提前谢谢!

Lad*_*nka 5

Linq-To-Entities只能调用概念模型(EDMX)中定义的特殊类型的方法.这些方法称为模型定义函数.因此,如果您以这种方式定义方法,则可以调用它.您也可以查看此博客文章.


Dan*_*rth 1

不幸的是,这是无法完成的,因为您的 LINQ 查询已转换为 SQL。并且执行此翻译的所谓提供者不知道您的方法。