2017-08-22 61 views
0

所以想象一下,我有一個簡單的數據庫可以接收盒子(傳入)和發送盒子(傳出)的系統。所以一個盒子有多個boxcontent,但是「a」boxcontent可以有一個接收盒子(當它到達時),也可以是一個發送盒子(當它被髮送時)。實體框架:如何有2個屬性引用相同的其他表

但是,當我有這樣的結構時,Entity Framework向BoxContent的數據庫表添加一個「Box_ID」列。

這裏的實體:

public class BoxContentItem { 
    public Box IncomingBox { get; set; } 
    public Box OutgoingBox { get; set; } 
} 

public class Box { 
    public IList<BoxContentItem> BoxContentItems { get; set; } 
} 

那麼,如何讓IList<BoxContent> BoxContent鏈接要麼Box IncomingBoxBox OutgoingBox

+0

因此1盒可以有multple內容是什麼?你不想要1盒 - 1內容? –

+0

不,這只是一個簡單的例子,一個盒子可以有多個內容,但我會重新命名它以便於理解 – Mason

+0

我只會做1個''public box box {get;組; }'在Box中添加一個新成員'''''''''''''''''組; }''或者一個指定類型的枚舉。 ''public BoxType Type {get;組; }'' –

回答

2

您可以使用InverseProperty屬性上盒的實體,但你需要添加額外的屬性,如:

public class Box { 
    [InverseProperty("IncomingBox")] 
    public IList<BoxContentItem> IncomingBoxContentItems { get; set; } 

    [InverseProperty("OutgoingBox")] 
    public IList<BoxContentItem> OutgoingBoxContentItems { get; set; } 
} 
+0

是的,修正了它!有些來自數據庫的查詢需要改變(包含),但其他一切正常,正如我所希望的那樣。謝謝! – Mason

相關問題