2016-12-21 7 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

Какова связь между учителем и уроком, на одном уроке может быть много учителей? – Iraj

+0

Эта фикция также станет уроком от учителя. И один урок будет учителем. Таким образом, отношения должны быть едины. –

ответ

0

вы должны иметь отношение один ко многим, например, урок может иметь один или несколько учителя вы можете использовать этот код:

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

    } 

для этого secenario вы не делаете нужно использовать свободно API.

UPDATE:

за один к одному соотношению:

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 отношений. Как будет работать Mapping? –

+0

@ BilalGünaydın ответ обновлен! – Iraj

+0

[Key, ForeignKey («Student»)] Почему здесь студент? Я могу дать вам то, что хочу, как имя, не так ли? –