C# 实体框架代码首先使用另一个表的非主键接近外键

C# 实体框架代码首先使用另一个表的非主键接近外键,c#,sql-server,entity-framework,C#,Sql Server,Entity Framework,表A: public A() { Bs = new List<B>(); } public ICollection<B> Bs {get; set;} 如果我有一个a的主键int Id列到B的int列的外键,它工作正常 但是我想要一个a的唯一键varchar列的外键到B的varchar列,当我运行查询时,它抛出一个将varchar转换为int的错误 简而言之:有人能告诉我如何在Entity Framework代码优先方法中将非主键作为其他表的外键处理吗?到目前

表A:

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

public ICollection<B> Bs {get; set;}
如果我有一个a的主键int Id列到B的int列的外键,它工作正常

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


简而言之:有人能告诉我如何在Entity Framework代码优先方法中将非主键作为其他表的外键处理吗?

到目前为止,Entity Framework不支持备用键。他们刚刚开始在版本7-中引入它们。

其他属性看起来如何?您希望如何将外键映射到另一个表的主键而不是主键?连接将是不明确的-可以有多个元组具有相同的值,因为它不是唯一的-这将在表A中创建一个不简单的关系:考虑两个字段StutuSIDPK和StasuSCODE唯一性。在表B中:我不想将StatusId映射为外键,但我想将状态代码映射为外键。罗杰回答说,EF7将引入备用密钥支持。
public B()
{
    a = new A();
}

public A a {get; set;}