【发布时间】:2011-07-26 05:22:07
【问题描述】:
我正在学习 EF Code First,但我正在为在我的应用程序中使用哪些模式而苦苦挣扎。我读过许多相互矛盾的建议和论据,有些人说您应该使用存储库模式,而另一些人则说这样做是多余的,我倾向于同意。
这是我的delim:
假设我正在构建一个允许我管理客户的 REST Web 服务。该服务将允许我添加客户、删除客户、编辑客户以及查找客户。
我应该:
A.) 我的问题归结为我的业务逻辑应该去哪里。我是否应该有一个 CustomerManager 类来提供接受客户实体的 Add、Edit、Delete 和 Find 方法?我的验证逻辑应该放在那些方法中吗?
B.) 当我的 Customer 实体具有 Save()、Delete() 和 Find() 方法并且所有验证登录都在 Customer 类内部完成时,我应该使用 Active Record 开发风格吗?
C.) 我应该做某种类型的混合,其中简单的验证逻辑在实体本身上。这可以通过代码优先属性来完成。我也可以在实体上有一个简单的保存方法。然后,我可以在 CustomerManager 类中执行复杂的业务验证逻辑、delete()、finds() 和多实体保存?
我有点倾向于选项 C。过去我通常使用 Manager/Service 类来保持我的实体非常简单。但是,由于代码首先在实体级别进行实体属性验证,所以似乎所有简单的实体验证都应该去那里。
我意识到这可能有点像宗教话题,但我想获得一些其他选择,以了解如何以最佳方式组合一个可靠的应用程序。
【问题讨论】:
-
你最终选择了什么?你对你的决定满意吗?现在,面对同样的决定,我倾向于选择 Active Record 模式。
标签: entity-framework-4 code-first