2012-07-24 36 views
3

我有兩個位於兩個分開的實體框架模型的表,我想檢索兩個表之間的JOIN數據。我正在使用實體框架3.1。實體框架中的兩個模型的實體之間的聯接

是否有可能檢索兩個表之間進行聯接的信息?

如果是,我應該使用「LINQ to Entities」還是「Entity SQL」?

回答

0

據我所知,EF不會這樣做。您不能用來自多個域的實體創建單個表達式。當您請求結果的第一項時,它會失敗。

0

實體框架模型是數據庫(商店)模型和類模型之間的映射。目前(如果有的話),一個EF模型不能讀取另一個模型的映射信息。所以它不能將一個外部類映射到表中,更不用說創建涉及該表的SQL。就EF而言,這些表格可能有兩個完全不同的數據庫。

備選方案:

  • 使用LINQ到對象加入從兩個模型預取的數據,即,數據由例如取出到存儲器ToList()
  • 收集一個模型中的值列表,並用它從另一個模型中獲取數據(例如,在Contains語句中使用的OrderId s的列表,該模型從另一個模型獲取Orderline - 不切實際的示例,OK)。
  • 僅對一個(和多個)表使用一個EF模型映射。
-1

你可能已經想通了這一點現在,但這裏是我的解決方案:

var data = db.FirstEntity 
      .Join(db.SecondEntity, ent1 => ent1.ID, ent2 => ent2.ForeignKeyID, 
      (ent1, ent2) => new { LeftSideObject = ent1, RightSideObject = ent2 }) 
      .Select(x => x.LeftSideObject); 

我有一個名爲變量,一般我所能,希望這是有道理的!

+0

問題是關於不同的模型,而不僅僅是不同的實體。而對於實體,您可以使用導航屬性而不是連接。 – 2015-06-08 03:19:04