C#+ LINQ + ADO.NET EF,連接2個表並返回所有內容,而無需手動指定所有字段

ado.net c# entity-framework linq

我在ADO.NET Entity Framework上有一個簡單的LINQ查詢,如下所示

var result = 
  from itemA in TableA
  join itemB in TableB on itemA.ID = itemB.ID
  select ??????

我試圖從itemAitemB選擇所有內容,而不指定所有TableATableB

什麼想法?

一般承認的答案

這是你需要的嗎?

    var result = from itemA in TableA 
                 join itemB in TableB on itemA.ID equals itemB.ID
                 select new { itemA, itemB };

或者,您可以聲明一個結果類,它可以幫助您構建結果對象,而無需指定所有字段:

    class ItemAB
    {
        public ItemAB(ItemA a, ItemB b)
        {
            FieldA1 = a.FieldA1;
            FieldA2 = a.FieldA2;
            FieldB1 = b.FieldB1;
            FieldB2 = b.FieldB2;

        }
        public int FieldA1 { get; private set; }
        public int FieldA2 { get; private set; }
        public int FieldB1 { get; private set; }
        public int FieldB2 { get; private set; }
    }

    var result = from itemA in TableA 
                 join itemB in TableB on itemA.ID equals itemB.ID
                 select new ItemAB(itemA, itemB);

熱門答案

從您的鏈接查詢看起來您有2個表與一對一的關係。

如果是這樣,那麼執行此操作的方法是配置實體模型,以便將兩個表合併為一個實體。詳情見:

http://blogs.msdn.com/simonince/archive/2009/03/23/mapping-two-tables-to-one-entity-in-the-entity-framework.aspx



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow