Ef代码原则和依赖的第一个区别

时间:2014-06-05 06:39:38

标签: 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;}

 }

我想配置一对一的关系。我的问题是:如果存在差异:

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

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

我会很感激,如果有人会解释它是什么意思原则和依赖......

1 个答案:

答案 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();