我在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属性的导航属性引入?
答案 0 :(得分:1)
您可以使用注释:
public class User
{
public int Id {get;set;}
public int Role1Id {get; set;}
[ForeignKey("Role1Id")]
public Role Role1 {get; set;}
}
答案 1 :(得分:0)
只要id与数据库模式中生成的字段匹配,EF就应自动配置它。
您可以尝试使用以下内容在UserConfig中配置它:
HasRequired(user => user.Role1)
.WithRequiredDependent()
.Map(mapping => mapping.MapKey("Role1Id");
这会将其配置为必需。如果不需要,也可以使用HasOption方法。