在EF Code First中混合使用Fluent API和DataAnnotations

11

虽然我们主要使用流畅的配置来配置我们的代码优先 POCOs,但我们发现使用数据注释来为表名、主键等添加注释非常有用,因为这样可以使没有对 ObjectContext 的引用的非 EF 组件更容易地与这些实体交互。

根据我们的经验,似乎可以自由地混合两种配置样式,其中流畅的配置会覆盖 DataAnnotations。这个文档在哪里记录?这样做混合配置有什么风险吗?

我们目前正在使用 EF 4.3.1 版本。

3个回答

42

你可以同时使用数据注释属性和Fluent API。Entity Framework 会优先采用 Fluent API 而不是数据注释属性。


8
这是唯一正确的答案。其他答案含糊不清。 - Gert Arnold
这就是我需要的细节,而且非常简洁明了。干得好! - Nathan Tregillus

7

1
我认为这不是一个风险 - 因为大部分情况下两种方法都有相应的替代品。但是,个人而言,当我在组织实体方面遇到问题时,我首先会删除所有注释并将其全部转移到流畅的方式。随着时间的推移,我基本上使用了直接的流畅配置(也使我的对象摆脱了与数据库“状态”相关的任何联系)... 在我看来,这样做更加“安全”,但只是因为你可以更多地控制它们,以便将它们保持一致并放在一个地方。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接