【问题标题】:Entity Framework 4 CTP 4 Code First: how to work with unconventional primary and foreign key namesEntity Framework 4 CTP 4 Code First:如何使用非常规的主键和外键名称
【发布时间】: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


    【解决方案1】:

    与模型生成器的流畅界面是实现此目的的正确方法。 您还可以使用 DataAnnotation 属性(如果您更喜欢属性):

    http://blogs.msdn.com/b/efdesign/archive/2010/03/30/data-annotations-in-the-entity-framework-and-code-first.aspx

    【讨论】:

      猜你喜欢
      • 2015-09-18
      • 2011-03-18
      • 1970-01-01
      • 1970-01-01
      • 2015-06-25
      • 2023-04-11
      • 1970-01-01
      • 2015-08-31
      • 2012-01-24
      相关资源
      最近更新 更多