0
我有一個實體在特定條件下排除了相同類型的實體。爲了實現這一點,我有一個實體類,如:實體框架映射多對多與獨立表的自我關係
public class Entity
{
public int ID { get; set; }
public virtual ICollection<EntityExcludedEntity> ExcludedEntities { get; set; }
}
public class ExcludedEntity
{
public int ID { get; set; }
[Timestamp]
public byte[] RowVersion { get; set; }
public int EntityID { get; set; }
public virtual Entity Entity { get; set; }
public int ExcludedEntityID { get; set; }
public virtual Entity ExcludedEntity { get; set; }
}
//declared in the ExcludedEntity mapping class.
public ExcludedEntityMapping()
{
HasRequired(t => t.Entity).WithMany(t => t.ExcludedEntity).HasForeignKey(t => t.EntityID)
HasRequired(t => t.ExcludedEntity).WithMany(t => t.ExcludedEntity).HasForeignKey(t => t.ExcludedEntityID);
}
這將導致在EF創建第三列和外鍵字段在我的模型稱爲Entity_ID
。似乎它認爲我在這裏定義了另一種關係,但我不明白爲什麼。
這是關係到創建的表中的外鍵的一部分:
.ForeignKey("dbo.Entities", t => t.EntityID)
.ForeignKey("dbo.Entities", t => t.ExcludedEntityID)
.ForeignKey("dbo.Entities", t => t.Entity_ID)
通過'WithRequiredDependent()'你說'Entity'有一個必需的'ExcludedEntity'。它應該是'HasMany(t => t.ExcludedEntities)'。 –
爲什麼這是M:M關係,你的獨立表在哪裏?你能口頭解釋實體之間的關係嗎? – renakre
@erkaner一個實體可以排除許多不同的實體,並且該實體本身可以被許多其他實體排除。 –