2017-10-17 66 views
0

你好我有一個情況,我有一個問題:如何將一對一實體與多對多結合

我有3個模型可以說設備,收件箱和後綴。 設備只能有一個收件箱,收件箱可以分配給多個設備 而收件箱和後綴通過連接表與多對多關聯。

的收件箱流利的API(SectionName)和sugffix會是什麼樣子:

  modelBuilder.Entity<SectionName>() 
      .HasMany(suffix => suffix.SectionsSuffix) 
      .WithMany(name => name.SectionsName) 
      .Map(nameSuffix => 
      { 
       nameSuffix.ToTable("SectionsNameSuffix"); 
       nameSuffix.MapLeftKey("SectionNameId"); 
       nameSuffix.MapRightKey("SectionSuffixId"); 
      }); 

型號有沒有什麼特別的:

收件箱:

[Table("SectionsName")] 
public class SectionName : BaseEntity 
{ 
    public SectionName() 
    { 
     SectionsSuffix = new List<SectionSuffix>(); 
    } 

    [Required] 
    public string Name { get; set; } 

    public ICollection<SectionSuffix> SectionsSuffix { get; set; } 
} 

後綴:

[Table("SectionsSuffix")] 
public class SectionSuffix : BaseEntity 
{ 
    public SectionSuffix() 
    { 
     SectionLines = new List<SectionLine>(); 
     SectionsName = new List<SectionName>(); 
    } 

    [Required] 
    public string Name { get; set; } 

    public ICollection<SectionLine> SectionLines { get; set; } 
    public ICollection<SectionName> SectionsName { get; set; } 
} 

和設備:

public class Device 
{ 
    protected Device() 
    { 
    } 

    public int Id { get; set; } 

    public string Description { get; set; } 

    public int? InboxId { get; set; } 

    [ForeignKey("InboxId")] 
    public virtual SectionName Inbox { get; set; } 
} 

所以基本上一個設備可以連接到收件箱和後綴

後綴連接到另一多對多的單一組合,而且這還只是針對信息。

現在,我正在尋找一種方法,當我從設備實體獲取記錄時就會知道使用女巫組合。我正在考慮在聯結表中添加額外的列,但是這會讓事情變得複雜,我想知道是否有另一種方法來實現它。

+0

「Device」可以連接到完全相同的收件箱和後綴組合,這些組合是以多對多關係建模還是建模超集/子集/獨立關係? – grek40

+0

如果我理解正確的是設備和收件箱有一對多的關係和收件箱和後綴有多對多的關係? –

+0

@ RJ-是的,這是情況 –

回答

0

在主表中放置ID組合做了訣竅。

相關問題