实体框架Fluent API:违反DRY?

时间:2013-08-01 19:26:19

标签: entity-framework data-annotations fluent

我偶然发现了使用Fluent API创建POCO配置的EF Code First教程。我不知道这在EF中可用,之前只有数据注释。

在观看本教程之后,我阅读了大量关于“Fluent API与数据注释”的文章/主题。似乎共识是Fluent API允许您将“哑”域POCO与持久性逻辑分开。我看到的明显问题是你没有得到数据注释带来的前端验证。我还没有看到亲Fluent API人群对如何解决这个问题的回应。

使用Fluent API时,您是否被迫在配置文件和前端复制逻辑?

1 个答案:

答案 0 :(得分:1)

是的,当使用流畅的API方法时,您可能最终会在前端验证中复制实体元数据。

流畅的API方法的一大好处是您的实体不依赖于实体框架。通过将数据注释属性移动到System.ComponentModel.DataAnnotations程序集,已在.NET 4.5中修复此问题。

复杂的实体模型也很常见,您的前端实际上不会使用域实体,但会使用DTO或从实体投射的某些前端特定模型。在这种情况下,无论如何,您将丢失数据注释属性。