【问题标题】:Entity Framework Code First approach foreign key with non primary key of another table实体框架代码优先方法外键与另一个表的非主键
【发布时间】:2015-09-07 16:00:31
【问题描述】:

表 A:

public A()
{
    Bs = new List<B>();
}

public ICollection<B> Bs {get; set;}

表 B:

public B()
{
    a = new A();
}

public A a {get; set;}

如果我有一个 A 的主键 int Id 列到 B 的 int 列的外键,它工作正常。

但是我想要 A 的唯一键 varchar 列到 B 的 varchar 列的外键,当我运行查询时,它会抛出将 varchar 转换为 int 的错误?

简而言之:谁能告诉我在实体框架代码优先方法中将非主键作为其他表的外键处理?

【问题讨论】:

  • 其他属性怎么样?以及如何将外键映射到另一个表的主键?连接将是模棱两可的 - 可以有多个具有相同值的元组,因为它不是唯一的 - 这将创建一个不简单的关系
  • 在表 A 中:考虑两个字段 StatusId(PK) 和 StatusCode(Unique)。在表 B 中:我不想将 StatusId 映射为外键,但我想将 Status Code 映射为外键。正如 Roger 所说,EF7 中将引入对备用键的支持。

标签: c# sql-server entity-framework


【解决方案1】:

截至目前,Entity Framework 不支持备用键。他们刚刚开始在版本 7 中“引入”它们 - Channel 9 video。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-15
    • 2016-10-17
    • 1970-01-01
    • 1970-01-01
    • 2013-11-20
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多