2015-06-25 43 views
0

我有一個與另外兩個模型具有多對多關係的組模型。下面是一個簡單的代碼首先有助於解釋:EF6跨多個多對多關係的查詢

public class Store 
{ 
    public int ID {get; set;} 
    public string Name {get; set;} 

    public virtual ICollection<StockGroup> StockGroups { get; set; } 
} 

public class StockItem 
    public int ID {get; set;} 
    public string Name {get; set;} 

    public virtual ICollection<StockGroup> StockGroups { get; set; } 
} 

public class StockGroup 
    public int ID {get; set;} 
    public string Name {get; set;} 

    public virtual ICollection<Store> Stores { get; set; } 
    public virtual ICollection<StockItem> StockItems { get; set; } 
} 

使用我創建存儲和StockGroup以及StockItem和StockGroup之間的許多一對多的關係,流利的API。這反過來又創建了兩個連接表。

我遇到的問題是我似乎無法創建一個查詢,跨越從Store到StockItem或反向而不使用foreach循環。

例如:給定一個StockItem,我想通過StockGroup表瞭解與其相關的所有商店。我嘗試過這樣的事情,但它返回的是一個集合的集合。

var stock = db.StockItems.Find(4); 
var stores = stock.StockGroups.Select(g => g.Stores); 

我該如何重寫這個結合StockGroups來給我一個商店的集合?

謝謝!

回答