【发布时间】:2012-03-01 18:59:34
【问题描述】:
我在我的项目中使用了很多 LINQ 查询和业务方法。 允许从 Iqueryable 使用这些业务方法:
- 我在 SQL Server 中定义了 UDF 函数(带有所需的参数)
- 将此 UDF 添加到应用程序的 EDMX 模型中
-
并在 UDF 和 LinQ 之间使用这样的方法在 从 dbcontext 继承的部分类:
[EdmFunction("MyProject.Store", "GetTaxesOfProduct")] public static Decimal GetTaxesOfProduct(Decimal amount, Int32 TaxMethod) { throw new NotSupportedException("Not direct access possible, use with E-SQL or LINQ"); }
这对 IQueryable 非常有效。 但问题是,要从一个简单对象(未链接到数据库记录)中使用此方法,我需要制作一些令人毛骨悚然的东西:
var query = from foo in context.JustATable select context.GetTaxesOfProduct(15.55, 3);
最近我遇到了http://blogs.msdn.com/b/charlie/archive/2008/01/31/expression-tree-basics.aspx,他解释了如何通过表达式创建一个可用于 C# 对象和 IQueryable 的方法
那么,使用表达式,是否可以像我的方法一样制作业务方法,但不使用 UDF 而只使用表达式?
提前谢谢你!
【问题讨论】:
标签: linq entity-framework entity-framework-4 linq-to-entities