实体框架实体上的计算值

时间:2011-02-25 13:27:34

标签: c# entity-framework-4 linq-to-entities

在我的项目中,我有一个名为Product的实体,其中包含属性Price 我需要计算每个产品的税,所以我做了一个模型定义函数,就像在本教程中一样 http://blogs.msdn.com/b/efdesign/archive/2009/01/07/model-defined-functions.aspx

一切正常,Generated SQL很干净,但我遇到了问题。

我需要为刚刚制作的实体(产品对象未存储在数据库中)获得税收。 是否可以为这样的对象使用模型定义函数? 如果没有,我如何使用linq和纯C#代码中的相同方法计算税收方法?

提前感谢。

1 个答案:

答案 0 :(得分:1)

我要做的是在SQL Server中创建一个用户定义的函数,使用它来填充计算列,然后从应用程序中调用它来填充新创建的对象的tax值。

不幸的是,上次我检查时,在EF4中调用UDF相当笨拙,所以我所做的,我知道这不是世界上最干净的东西,是添加一个LINQ-to-SQL数据上下文,添加UDF到那个,然后只是从那里调用UDF,好像它是一个C#方法。

为了让事情变得更清洁,我再向上一步并将相同的方法定义添加到我的EF4 ObjectContext(手动,通过部分类),然后在我的EF上下文中调用该方法,然后调用该方法L2S上下文的一个实例。

我知道它看起来很多,但在实践中它并没有太糟糕。在EF4中调用UDF是一件不像L2S那样方便的事情。