EF 4.1 Code First - 我应该使用什么模式?

时间:2011-07-26 05:22:07

标签: entity-framework-4 code-first

我正在学习EF Code First,我正在努力解决在我的应用程序中使用的模式。我已经阅读了许多相互矛盾的消息和一些说法你说应该使用存储库模式,而其他人说这样做是多余的,我倾向于同意。

这是我的delima:

假设我正在构建一个允许我管理客户的REST Web服务。这项服务将允许我添加客户,删除客户,编辑客户,并找到客户。

我应该:

答。)我的问题归结为我的业务逻辑应该放在何处。我是否应该有一个CustomerManager类,它提供了接收Customer实体的Add,Edit,Delete和Find方法?我的验证逻辑应该采用这些方法吗?

B。)当我的客户实体在其上有Save(),Delete()和Find()方法时,我是否应该使用Active Record开发方式,并且在Customer类内部进行验证登录?

C。)我应该做一些类型的混合,其中简单的验证逻辑在实体本身。这可以通过代码首先归因来完成。我也可以在实体上有一个简单的保存方法。那么,我可以在CustomerManager类中执行复杂的业务验证逻辑,删除(),查找()和多实体保存吗?

我倾向于选项C.过去我通常使用Manager / Service类来保持我的实体非常简单。但是,由于代码首先在实体级别上进行实体属性验证,所以似乎所有简单的实体验证都应该去那里。

我意识到这可能是一个宗教话题,但我想得到一些其他选择,以便将最好的方法组合在一起。

1 个答案:

答案 0 :(得分:1)

EF 4.1 Code首先将工作单元与数据映射器模式结合起来。

所以,我不建议使用活动记录模式。

具有实体框架的存储库模式是常见的解决方案。如果你想要一些简单的验证逻辑,你可以使用DataAnnotations,它可以很好地适用于实体框架。

以下是使用EF实现存储库模式的简单示例:

http://www.efekaptan.com/repository-pattern-with-entity-framework-code-first-4.1