在实体框架上实现业务逻辑

时间:2011-12-03 16:33:47

标签: c# entity-framework entity-framework-4.1 business-rules

我在我的应用程序中使用ADO.NET实体框架作为数据访问层,但我不确定应该在哪里放置业务逻辑。是否有可用的最佳实践或示例说明如何将业务逻辑与实体框架实体集成?

编辑后:
我想在BLL中使用实现计算,安全性,规则和其他东西的任何样本... 任何文章和样品..!

3 个答案:

答案 0 :(得分:7)

您应该有一个业务层(一个引用您的数据访问层的单独项目,或者至少是您的业务对象所在的某种目录)。这些业务对象应该是直接与您的DAL通信的对象。换句话说,不要在DAL上实现业务逻辑,因为它不属于那里。

我确定你之前看过这个图:

enter image description here

答案 1 :(得分:3)

我不会将您的业务逻辑/规则放在实体框架中 - 它充当数据访问层。我将创建一个单独的业务逻辑项目(类库),它可以调用您的数据访问层来获取/设置数据并执行业务规则,这样您就可以在数据访问层发生更改时重用规则。

答案 2 :(得分:2)

您可以将实体用作业务对象。 Implement Business Logic msdn库文章解释了它是如何做到的。如果您按照链接进行操作,您将在属性更改期间和保存更改时找到适合业务逻辑的代码示例。

请记住,您可以extend EF with partial classes with custom business logic.

  

“ADO.NET实体框架包含一个给定EDM的工具   schema,将生成表示EDM实体的.NET类   在.NET环境中。生成的类是部分的   类,因此可以使用自定义业务逻辑进行扩展   单独的文件,不会干扰代码生成器。“

Customizing Objects msdn文章也涵盖了这个主题。

On n-tier solutions for Rich Internet Applications(RIA)你可以add Business Logic to the Domain Service