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

Jus*_*tin 5 code-first entity-framework-4

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

这是我的delima:

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

我是不是该:

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

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

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

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

我意识到这可能是一个宗教话题,但我想得到一些其他的选择,什么是最好的方法来组合一个坚实的应用程序.

Men*_*ion 1

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

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

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

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

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