2015-07-21 65 views
1

我得到了下面的連接,我會返回什麼類型/類來保留所有的屬性?這是我認爲大多數人都熟悉的NorthWind數據庫。LinqToSQL加入什麼類型作爲返回列表

  var q = 
       from a in db.GetTable<Order_Detail>() 
       join b in db.GetTable<Product>() on a.ProductID equals b.ProductID 
       select a; 
+2

你會想'選擇新的{a,b}'來得到一切。 – NibblyPig

+0

,我該怎麼做?當談到LinqToSql時,我是一個新手 – btmach

回答

2

你有兩個選擇,你可以選擇它作爲一個anonymous type,這樣

var q = 
       from a in db.GetTable<Order_Detail>() 
       join b in db.GetTable<Product>() on a.ProductID equals b.ProductID 
       select new { a, b }; 

這會給你一個對象qab就可以了,因此,例如,你可以這樣做:

q.a.SomeOrderInformation

q.b.SomeProductInformation

或者你可以選擇一個班。

創建領域一個新的類,你想:

public class MyNewClass { 
    public string MyOrderProperty {get; set;} 
    public string MyProductProperty {get; set;} 
} 

然後填充它:

var q = 
       from a in db.GetTable<Order_Detail>() 
       join b in db.GetTable<Product>() on a.ProductID equals b.ProductID 
       select new MyNewClass { MyProductProperty = b.ProductId, MyOrderProperty = a.OrderName }; 

變化領域/類名,以適應我只是做起來,我不要」無法進入北風。

2

你想要做的就是創建一個新的匿名類型返回這兩個值是什麼:

var q = 
    from a in db.GetTable<Order_Detail>() 
    join b in db.GetTable<Product>() on a.ProductID equals b.ProductID 
    select new 
    { 
     Order = a, 
     Product = b 
    }; 

請注意,如果你有你的外鍵設置正確,你不應該需要做的顯式加入。您應該能夠說Order_Detail.Products以在Order_Detail中獲得Product

相關問題