我偶然发现了使用Fluent API创建POCO配置的EF Code First教程。我不知道这在EF中可用,之前只有数据注释。
在观看本教程之后,我阅读了大量关于“Fluent API与数据注释”的文章/主题。似乎共识是Fluent API允许您将“哑”域POCO与持久性逻辑分开。我看到的明显问题是你没有得到数据注释带来的前端验证。我还没有看到亲Fluent API人群对如何解决这个问题的回应。
使用Fluent API时,您是否被迫在配置文件和前端复制逻辑?
答案 0 :(得分:1)
是的,当使用流畅的API方法时,您可能最终会在前端验证中复制实体元数据。
流畅的API方法的一大好处是您的实体不依赖于实体框架。通过将数据注释属性移动到System.ComponentModel.DataAnnotations程序集,已在.NET 4.5中修复此问题。
复杂的实体模型也很常见,您的前端实际上不会使用域实体,但会使用DTO或从实体投射的某些前端特定模型。在这种情况下,无论如何,您将丢失数据注释属性。