一对多的关系
UserType 属于许多用户< - >用户有一个 UserType
单向导航属性需要
public class UserType
{
public int UserTypeId {get; set;}
}
public class User
{
public int UserId {get; set;}
public int UserTypeId {get; set;}
public virtual UserType UserType {get; set;}
}
Entity<User>().HasRequired(u => u.UserType).WithMany().HasForeignKey(u => u.UserTypeId);
单向导航属性可选(外键必须是 Nullable
类型)
public class UserType
{
public int UserTypeId {get; set;}
}
public class User
{
public int UserId {get; set;}
public int? UserTypeId {get; set;}
public virtual UserType UserType {get; set;}
}
Entity<User>().HasOptional(u => u.UserType).WithMany().HasForeignKey(u => u.UserTypeId);
双向导航属性(必要/可选根据需要更改外键属性)
public class UserType
{
public int UserTypeId {get; set;}
public virtual ICollection<User> Users {get; set;}
}
public class User
{
public int UserId {get; set;}
public int UserTypeId {get; set;}
public virtual UserType UserType {get; set;}
}
需要
Entity<User>().HasRequired(u => u.UserType).WithMany(ut => ut.Users).HasForeignKey(u => u.UserTypeId);
可选的
Entity<User>().HasOptional(u => u.UserType).WithMany(ut => ut.Users).HasForeignKey(u => u.UserTypeId);