我在域项目中编码我们的POCO实体,其中我没有提及EntityFramework
或DataAnnotations
。第二个项目DataAccess包含实体的数据上下文和流畅配置。POCO实体Fluent API与数据注释
某些实体属性是IsRequired
或HasMaxLength
。使用该域的开发人员将不知道需要什么,或者没有Xml注释文档的情况下该属性的最大长度。所以,我已经向属性添加了文档来传达需求。
但问题是,如果需求更改,我必须更新评论。这意味着我正在更新2个库 - Domain和DataAccess。
我一直担心在引用域中的DataAnnotations;我的属性没有属性。这些属性将使开发人员可以访问域实体,了解所需的内容或是否有最大长度的属性。
是否有另一种方法来传达属性的需求,而不使用实体上的DataAnnotations或必须更新实体上的Xml注释?
或者,我是否不必要地过分强调将DataAnnotation
引用添加到Domain项目?
这篇文章可能有一个很好的建议http://blog.ploeh.dk/2012/02/09/IsLayeringWorththeMapping/ – Fendy 2013-05-13 14:22:10
我个人的感觉是,它不应该是一个问题,附加这些类型的注释你的实体类。像列和表映射这样的东西最好留给数据访问层,这样您的实体就不会与模型的内在部分无关,但在我看来,指定了您的实体的*内容*的要求的注释是完全合适的。 – 2013-05-13 14:29:00
我倾向于对这些问题进行实践。如果某个属性是使用您的域的开发人员必须知道的属性,那么它属于该域。不要害怕引用数据注释。我个人无法想象引用DataAnnotations程序集的方案会妨碍可重用性。这是一个比手动更新评论更好的解决方案。 – gabnaim 2013-05-13 15:00:54