虽然我们主要对代码优先的 POCO 使用流畅的配置,但我们发现对表名、PK 等内容使用数据注释很有用,因为它使没有参考的非 EF 组件更容易到 ObjectContext 以与这些实体进行交互。
根据我们的经验,这两种配置风格似乎可以自由混合,流畅的配置覆盖 DataAnnotations。这在任何地方都有记录吗?做这种混合配置有什么风险吗?
我们目前使用的是 EF 4.3.1
虽然我们主要对代码优先的 POCO 使用流畅的配置,但我们发现对表名、PK 等内容使用数据注释很有用,因为它使没有参考的非 EF 组件更容易到 ObjectContext 以与这些实体进行交互。
根据我们的经验,这两种配置风格似乎可以自由混合,流畅的配置覆盖 DataAnnotations。这在任何地方都有记录吗?做这种混合配置有什么风险吗?
我们目前使用的是 EF 4.3.1
您可以同时使用 Data Annotation 属性和 Fluent API。Entity Framework 优先于 Fluent API 而非 Data Annotations 属性。
我个人没有遇到混合代码优先流利的 api 和数据注释的任何问题。我还想知道是否会有任何交叉疼痛,老实说,我还没有找到。这里有一些关于这个主题的案例研究的参考资料,可以让你放松一下。
(直接来自 EF 团队) http://msdn.microsoft.com/en-us/data/jj591583.aspx
(第 1 部分) http://www.codeproject.com/Articles/476966/FluentplusAPIplusvsplusDataplusAnnotations-plusWor
我不认为这是一种风险——因为这两种东西在大多数情况下都有相当的对应物。
但是,就我个人而言,当我在构建我的实体时遇到某种问题时——我要做的第一件事就是删除任何注释——然后让所有的东西变得流畅。
随着时间的推移,这导致我使用了非常流畅的配置(也让我的对象与 Db 的“心态”有任何联系)......
IMO 它“更安全”,但只有在某种程度上,您可以做更多事情并完全按照您的意愿控制事情。还有助于使事情保持一致并集中在一个地方。