EF Code First首先使用非主键创建一对多关系

时间:2011-07-06 03:08:55

标签: ef-code-first code-first

我有以下两个实体:

public class User
{
    public int PKID { get; set; }
    public string Login { get; set; }
    public string Username { get; set; }
    public string Password { get; set; }

    public virtual ICollection<AppAccess> AppAccessList { get; set; }
}

public class AppAccess
{
    public int PKID {get; set; }
    public string Login { get; set; }
    public string AppCode { get; set; }
}

PKID字段是每个表的主键和标识列,但“登录”字段是将用户作为主要实体的一对多关系中的链接。

如何使用流畅的API设置导航属性AppAccessList,如果可能的话,使用“登录”字段作为关系键?顺便说一句,这些实体基于现在无法重构的现有模式。

1 个答案:

答案 0 :(得分:0)

我不相信这是可能的开箱即用,当然不能添加导航属性。我尝试使用新的电源工具对数据库进行逆向工程,它只是忽略了关系,我也无法使用代码(注释或流畅的界面)创建它。

您可以使用on OnModelCreating方法上的原始sql创建关系来制定约束,但是您需要手动使用join来在表之间导航。