EntityFrameWork模型关系配置

本文关键字:配置 关系 模型 EntityFrameWork | 更新日期: 2023-09-27 18:03:14

我在ef 5代码第一个解决方案编码,我有一个模型如下:

public class User
{
   public int Id {get;set;}
   public int Role1Id {get; set;}
   public Role Role1 {get; set;}
}

和另一个模型:

public class Role
{
   public int Id { get; set;}
   public string Title {get; set;}
}

我还在另一个类中配置此模型,如下所示:

  public class UserConfig : EntityTypeConfiguration<User>
    {
        public UserConfig()
        {
            ToTable("User", "dbo");
            // Here i want introduce Role1 as navigation property for Role1Id property
        }
    }

这里有一个问题:我如何配置用户模型来引入Role1作为Role1Id属性的导航属性?

EntityFrameWork模型关系配置

可以使用注释:

public class User
{
   public int Id {get;set;}
   public int Role1Id {get; set;}
   [ForeignKey("Role1Id")]
   public Role Role1 {get; set;}
}

EF应该自动配置它,只要id匹配数据库模式中生成的字段。

您可以尝试在UserConfig中使用以下命令配置它:

HasRequired(user => user.Role1)
   .WithRequiredDependent()
   .Map(mapping => mapping.MapKey("Role1Id");

将其配置为必需的。如果不需要,也可以使用HasOption方法