EF代码优先原则与从属原则之间的区别

ila*_*man 4 c# entity-framework ef-code-first

我有这些实体:

 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;}

 }
Run Code Online (Sandbox Code Playgroud)

我想配置一对一的关系。我的问题是:

modelBuilder.Entity<StudentBag>()
            .HasRequired(t => t.Student)
            .WithRequiredDependent(t=>t.StudentBag);

        modelBuilder.Entity<StudentBag>()
            .HasRequired(t => t.Student)
            .WithRequiredPrincipal(t => t.StudentBag);
Run Code Online (Sandbox Code Playgroud)

如果有人能解释这是什么原则和依存关系,我将不胜感激。

Rod*_*eal 5

这很简单,对外部类具有导航属性的类是Principal。

必需的类具有对主类的引用时,应使用: WithRequiredPrincipal()

所需的类被主类引用时,应使用: WithRequiredDependent()

例如。这样,下面的两个地图是相同的。

    //modelBuilder.Entity<>(Student)
        //.HasRequired(t => t.StudentBag)
        //.WithRequiredDependent();

    modelBuilder.Entity<Student>()
        .HasRequired(t => t.StudentBag)
        .WithRequiredDependent();

    modelBuilder.Entity<StudentBag>()
        .HasRequired(t => t.Student)
        .WithRequiredPrincipal();
Run Code Online (Sandbox Code Playgroud)