Entity Framework 4 中是否有办法(如果重要,使用 CTP4 和 Code First)来更改用于自动识别主键和外键的约定?我正在尝试将 EF 与使用“pk/fk”前缀而不是“id”后缀来标记键的旧数据库一起使用。此外,一个地址表有多个外键也很常见,例如,称为“fkAddressHome”和“fkAddressWork”。
我更喜欢一种以系统方式更改此行为的方法,这样我就不必为每个表指定这些更改。我研究了在 OnModelCreating 方法中覆盖列名的选项,但令人失望的是,如果您以这种方式添加一列,那么您必须将它们全部添加。这违反了我的 DRY 敏感性。
但是,任何解决方案都将不胜感激。EF4,尤其是 CTP4 的 Code First 增强功能,非常非常好。我期待看到下一个版本的 EF 还能带来什么。谢谢您的帮助。
更新
我能够通过将以下内容添加到我的 OnModelCreating 方法来映射关系:
modelBuilder.Entity<User>()
.HasRequired<Address>(p => p.Address)
.HasConstraint((p, u) => p.fkAddressHome == u.pkAddress);
我不确定这是否是最优雅的方法,或者这是否最终会给我带来任何问题,但它现在正在工作。