首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Fluent API =数据注释?

Fluent API =数据注释?
EN

Stack Overflow用户
提问于 2012-10-19 04:33:59
回答 2查看 3.5K关注 0票数 4

简单地问一下,在特性方面,Fluent API对于数据注释来说是可替换的吗?数据注释中没有包含在Fluent API中的特性是什么?

我想使用Fluent API是因为关注分离(在模型和持久性之间)、约定高于配置(在一个地方定义了DbContext.OnModelCreating(),但不是在每个模型属性上都定义了映射),我希望使用VS 2010层验证来确保POCO类永远不会依赖于EF、,但是如果我从源中完全删除数据注释,我会错过什么呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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提供良好的标签和验证。这就是让我头疼的原因。

现在发现了这样的想法:

  1. 在数据层中使用Fluent API,所以我的模型实际上是POCO类(POCO项目)和dll可以用于WCF和其他订阅此服务的项目。
  2. 对ViewModel使用数据注释。因为这只是在UI层中,除了MVC视图之外,ViewModel从来没有与其他项目共享过,所以我不介意有数据注释属性。
  3. 将(1)中创建的约束重做为(2),如[Required][MaxLength]。我发现一些人说,值得重复和改变干原理,因为ViewModel和域模型应该分开,并且彼此之间没有关系,尽管我认为MaxLength有多大的相关性(只是一个小的重复,对于n层体系结构来说应该是可以的+我可以使用静态类和const来使长度对双方都一样)。
票数 1
EN

Stack Overflow用户

发布于 2012-10-19 06:07:40

FluentValidation.NET提供了数据注释的全部功能,甚至更多。因此,如果您使用的是FV而不是数据注释,那么您绝对不会遗漏任何东西。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12967442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档