我现在一直在努力学习如何实施DDD,IoC并确保我的应用程序中存在关注点分离。我也试图进入测试第一开发的方式。
不知何故,Entity Framework给med带来了一些麻烦。我有一个域项目来保存我的域对象(现在很多都是POCO类,但有一些行为)。它是遗留代码,我尝试重构它,但MVC在Dataannotations上严重依赖验证。
在域对象上设置datavalidation-attributes,将它们绑定到实体框架。 EF上的大多数教学视频和文档也在域对象上使用了很多属性。
所以我想知道这真的是件好事吗?
我喜欢许多属性的想法,但将它们放在domian对象上的结果让我觉得实体框架是应用程序的核心,而不是域对象。
你有解决这个问题的任何提示,或者这是怎么回事?
更新
以下建议的答案让我在Ladislav Mrnka
回答了这篇文章对我来说,如果能解决我的问题,这听起来可能是最好的方法。他还指出了我对域层中属性的相同问题。
答案 0 :(得分:4)
答案 1 :(得分:2)
某些属性与EF和MVC相关 - 描述您的类的属性。一个必填字段,最小和最大长度等...如果你真的想要分离所有内容,我会将这些属性保存在你的域对象上,把数据库内容(外键等等)放在FluentAPI和MVC中(在视图模型上显示名称等。
如果MVC 4碰巧支持FluentAPI(我使用的是MVC 3,但不知道4,那么你应该使用它。)