【发布时间】:2010-08-25 15:22:16
【问题描述】:
在 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);
我不确定这是否是最优雅的方法,或者这是否最终会给我带来任何问题,但它现在正在工作。
【问题讨论】:
标签: .net entity-framework asp.net-mvc-2 entity-framework-4 code-first