1

我正在使用 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 属性的导航属性?

4

2 回答 2

1

您可以使用注释:

public class User
{
   public int Id {get;set;}

   public int Role1Id {get; set;}

   [ForeignKey("Role1Id")]
   public Role Role1 {get; set;}
}
于 2013-03-11T12:16:20.547 回答
0

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

您可以尝试在 UserConfig 中使用以下内容对其进行配置:

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

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

于 2013-03-11T12:25:58.617 回答