C# Fluent API=数据注释?
简单问一下,就功能而言,Fluent API是否可以替代数据注释? Fluent API中未包含的数据注释中的哪些功能C# Fluent API=数据注释?,c#,asp.net-mvc,asp.net-mvc-4,data-annotations,fluentvalidation,C#,Asp.net Mvc,Asp.net Mvc 4,Data Annotations,Fluentvalidation,简单问一下,就功能而言,Fluent API是否可以替代数据注释? Fluent API中未包含的数据注释中的哪些功能 我想使用Fluent API,因为关注点分离(在我的模型和持久性之间),约定优先于配置(映射定义在一个位置DbContext.OnModelCreating(),但不是在每个模型属性上),我想用它来确保我的POCO类永远不会依赖于EF,但是如果我从源代码中完全删除数据注释,我会错过什么呢?提供了数据注释的全方位功能,甚至更多功能。因此,如果您使用FV而不是数据注释,您绝对不会遗
我想使用Fluent API,因为关注点分离(在我的模型和持久性之间),约定优先于配置(映射定义在一个位置
DbContext.OnModelCreating()
,但不是在每个模型属性上),我想用它来确保我的POCO类永远不会依赖于EF,但是如果我从源代码中完全删除数据注释,我会错过什么呢?提供了数据注释的全方位功能,甚至更多功能。因此,如果您使用FV而不是数据注释,您绝对不会遗漏任何内容。我想知道这是因为我希望我的POCO类与EF完全隔离(我的存储库和UoW模式使kt可以移动到NHibernate)
Fluent API>数据注释,即Fluent API比数据注释具有更多的功能,可用于映射表和创建关系但是,Fluent API没有很好的标签和验证@Html.LabelFor
和@Html.EditorFor
,使用[Display(Name:=…)]
,[DisplayFormat(DataFormatString=…)]
和[Required(ErrorMessage=…)]
。这就是让我头痛的原因
现在我们发现了这样一个想法:
[Required]
和[MaxLength]
。我发现有些人说值得重复和使用DRY原则,因为ViewModel和domain模型应该分开,并且彼此不相关,尽管我认为MaxLength
是如何相关的(只是一个小的重复,对于n层体系结构来说应该没问题,我可以使用static class和const使两边的长度相同)“我想使用Fluent API,因为SoC和对流会影响配置和层验证,所以Poco命名空间永远不会依赖于EF”--嗯…我的解析器失败了。对不起,我当时很忙,我只是更新了问题。找到了答案:Fluent API>数据注释谢谢你的建议。它已经存在了几年,但不知道为什么下载数量仍然较少。如果我使用它,像
[Display(Name=“Username”)]这样的简单注释怎么样
和对@Html.LabelFor()
的支持?FV用于验证目的。它不用于自定义标签和显示名称。您可以通过使用.WithName
方法来实现,但通常我会将此信息与视图模型一起保留,并使用FV仅定义验证规则。除了[DefaultValue()]
无法使用Fluent API完成:(@webnoob,FluentValidation是一个为验证目的而设计的库,不是为定义默认值而设计的。在执行代码首次迁移时,Fluent API不是用于定义表结构等吗!?