实体框架 4 中是否有方法(如果重要的话使用 CTP4 和 Code First)来更改用于自动识别主键和外键的约定?我尝试将 EF 与旧数据库一起使用,该旧数据库使用“pk/fk”前缀而不是“id”后缀来标记键。此外,地址表具有多个外键(例如,称为“fkAddressHome”和“fkAddressWork”)的情况并不罕见。
我更喜欢一种以系统的方式更改此行为的方法,这样我就不必为每个表指定这些更改。我研究了在 OnModelCreating 方法中覆盖列名称的选项,但令人失望的是,如果您以这种方式添加一列,那么您必须将它们全部添加。这违反了我的 DRY 敏感性。
然而,任何解决方案将不胜感激。 EF4,特别是 CTP4 的 Code First 增强功能,真的非常非常好。我期待看到 EF 的下一版本中还有哪些内容。谢谢您的帮助。
Update
我可以通过将以下内容添加到我的 OnModelCreating 方法来映射关系:
modelBuilder.Entity<User>()
.HasRequired<Address>(p => p.Address)
.HasConstraint((p, u) => p.fkAddressHome == u.pkAddress);
我不确定这是否是最优雅的方法,或者这最终是否会给我带来任何问题,但它现在有效。
与模型生成器的流畅界面是实现这一目标的正确方法。
您还可以使用 DataAnnotation 属性(如果您喜欢属性):
http://blogs.msdn.com/b/efdesign/archive/2010/03/30/data-annotations-in-the-entity-framework-and-code-first.aspx http://blogs.msdn.com/b/efdesign/archive/2010/03/30/data-annotations-in-the-entity-framework-and-code-first.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)