我有这些实体:

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

如果有人能解释什么是原则和依赖…

最佳答案

很简单,具有指向外部类的导航属性的类是主体。
当所需类具有对主类的引用时,应使用:
带所需主体()
当主类引用所需的类时,应使用:
带RequiredDependent()
这样,下面的两张地图是一样的。

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

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

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

10-02 14:49