首先在EF代码中混合Fluent API和DataAnnotations

时间:2013-03-29 14:37:52

标签: c# entity-framework ef-code-first data-annotations entity-framework-4.3

虽然我们主要使用流畅的配置来实现代码优先的POCO,但我们发现对表名,PK等使用数据注释很有用,因为它使得非EF组件更容易使用引用ObjectContext来与这些实体进行交互。

根据我们的经验,似乎两种配置样式可以自由混合,流畅的配置覆盖DataAnnotations。这记录在哪里?这种混合配置有任何风险吗?

我们目前正在使用EF 4.3.1

3 个答案:

答案 0 :(得分:7)

您可以同时使用Data Annotation属性和Fluent API。实体框架优先于Fluent API而非Data Annotations属性。

答案 1 :(得分:6)

我个人没有遇到任何混合代码第一流畅api和数据注释的问题。我也想知道是否会有任何交叉的痛苦,我可以诚实地说我还没有发现任何问题。这里有一些关于这个主题的案例研究的参考文献,以便让你放松心情。

(直接来自EF团队) http://msdn.microsoft.com/en-us/data/jj591583.aspx

(第1部分) http://www.codeproject.com/Articles/476966/FluentplusAPIplusvsplusDataplusAnnotations-plusWor

答案 2 :(得分:1)

我不认为这是一种风险 - 因为两者都有相同的对应物。

但是,就个人而言,当我遇到围绕构造我的实体的某些问题时 - 我做的第一件事就是删除注释 - 如果有的话 - 并且全部流利。

随着时间的推移,我使用了非常直接的流畅配置(也释放了我与Db'心态'的任何关系的对象)...

  

IMO它“更安全”,但只能以你可以做得更多和控制的方式   事情正如你想要的那样。还有助于保持事物   一致且在一个地方。