我有这些实体:
public class StudentBag
{
public int BagIdentifier { get; set; }
public Student Student { get; set; }
}
public class Student
{
public string Name { get; set; }
public StudentBag StudentBag{get;set;}
}
我想配置一对一的关系。我的问题是:如果存在差异:
modelBuilder.Entity<StudentBag>()
.HasRequired(t => t.Student)
.WithRequiredDependent(t=>t.StudentBag);
modelBuilder.Entity<StudentBag>()
.HasRequired(t => t.Student)
.WithRequiredPrincipal(t => t.StudentBag);
我会很感激,如果有人会解释它是什么意思原则和依赖......
答案 0 :(得分:5)
非常简单,具有外部类的导航属性的类是Principal。
当必需的类具有对主类的引用时,您应该使用: WithRequiredPrincipal()
当主要类引用必需类时,您应该使用: WithRequiredDependent()
EG。这样下面的两张地图都是一样的。
//modelBuilder.Entity<>(Student)
//.HasRequired(t => t.StudentBag)
//.WithRequiredDependent();
modelBuilder.Entity<Student>()
.HasRequired(t => t.StudentBag)
.WithRequiredDependent();
modelBuilder.Entity<StudentBag>()
.HasRequired(t => t.Student)
.WithRequiredPrincipal();