简单地问一下,在特性方面,Fluent API对于数据注释来说是可替换的吗?数据注释中没有包含在Fluent API中的特性是什么?
我想使用Fluent API是因为关注分离(在模型和持久性之间)、约定高于配置(在一个地方定义了DbContext.OnModelCreating(),但不是在每个模型属性上都定义了映射),我希望使用VS 2010层验证来确保POCO类永远不会依赖于EF、,但是如果我从源中完全删除数据注释,我会错过什么呢?
发布于 2012-10-21 22:04:51
我想知道这是因为我希望我的POCO类完全独立于EF (我的存储库和UoW模式使kt可以迁移到NHibernate)。
Fluent API >数据注释,也就是说,Fluent API比数据注释具有更多的特性,对于映射表和创建关系非常有用。然而, Fluent API并没有使用[Display(Name:=...)]、[DisplayFormat(DataFormatString=...)]和[Required(ErrorMessage=...)]为@Html.LabelFor和@Html.EditorFor提供良好的标签和验证。这就是让我头疼的原因。
现在发现了这样的想法:
[Required]和[MaxLength]。我发现一些人说,值得重复和改变干原理,因为ViewModel和域模型应该分开,并且彼此之间没有关系,尽管我认为MaxLength有多大的相关性(只是一个小的重复,对于n层体系结构来说应该是可以的+我可以使用静态类和const来使长度对双方都一样)。发布于 2012-10-19 06:07:40
FluentValidation.NET提供了数据注释的全部功能,甚至更多。因此,如果您使用的是FV而不是数据注释,那么您绝对不会遗漏任何东西。
https://stackoverflow.com/questions/12967442
复制相似问题