2016-12-21 3 views
0

これは私のクラスです。コード内の個々のリレーションシップのマッピングはどのようになりますか?

public class Teacher 
{ 
    public Teacher() 
    { 
     this.isPassive = false; 
    } 
    public int ID { get; set; } 

    public Nullable<int> LessonID { get; set; } 

    //Navigation Property 
    public virtual Lesson Lesson { get; set; } 

} 

public class Lesson 
{ 
    public int ID { get; set; } 
    public string Name { get; set; } 

} 

以下は、私がマップしたコードです。

public TeacherMap() 
    { 
     HasKey(t => t.ID).Property(t => t.ID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); 

     //Relationship    
     HasOptional(t => t.Lesson) 
      .WithMany() 
      .HasForeignKey(t => t.LessonID); 
    } 

これは私のクラスと教師のクラスです。教師にはレッスンがあり、レッスンには教師がいなければなりません。このマッピングはどのように行うべきですか?

+0

教師とレッスンの関係は何ですか、1レッスンには多くの教師がいますか? – Iraj

+0

このフィクションは教師のレッスンにもなります。 1つのレッスンは教師になります。関係は1つでなければなりません。 –

答えて

0

あなたは、多くの関係1を持っている必要があり、たとえばレッスンでは、このコードを使うことができる1人のまたは多くの教師持つことができます:あなたは流暢なAPIを使用する必要がいけないこのsecenarioため

public class Teacher 
    { 
     public Teacher() 
     { 
      this.isPassive = false; 
     } 
     public int ID { get; set; } 

     public Nullable<int> LessonID { get; set; } 

     [InverseProperty("Teachers")] 
     [ForeignKey("LessonID")] 
     public virtual Lesson Lesson { get; set; } 

    } 

    public class Lesson 
    { 
     public int ID { get; set; } 
     public string Name { get; set; } 

     [InverseProperty("Lesson")] 
     public virtual ICollection<Teacher> Teachers { get; set;} 

    } 

を。

UPDATE:

に1対1の関係のために:

public class Teacher 
    { 
     public Teacher() 
     { 
      this.isPassive = false; 
     } 
     public int ID { get; set; } 


     public virtual Lesson Lesson { get; set; } 

    } 

    public class Lesson 
    { 
     [Key, ForeignKey("Teacher")] 
     public int ID { get; set; } 

     public string Name { get; set; } 


     public virtual Teacher Teacher { get; set;} 

    } 

詳細についてはthisを参照してください。

+0

私はそれが普通であることを知っています。しかし、私に与えられたプロジェクトでは、彼らは1対1の関係を作ることを望んでいました。マッピングはどのように機能しますか? –

+0

@BilalGünaydın答えが更新されました! – Iraj

+0

[Key、ForeignKey( "Student")] ここに学生がいるのはなぜですか?私はあなたが望むものを名前として与えることができますよね? –

関連する問題