你好我有一个问题:
我有3个模型可以说设备,收件箱和后缀。 设备只能有一个收件箱,收件箱可以分配给许多设备 Inbox和Suffix通过联结表连接多对多关系。
收件箱的流畅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 :(得分:0)
将id组合放在主表中就可以了。