2011-08-02 34 views
0

我使用.NET 4.0運行ASP.NET MVC + LINQ到SQL。使用匿名類型的多表LINQ-SQL查詢

我有查詢與此類似:

var labels = (from c in db.Customers 
join o in db.Orders 
on c.CustID equals o.CustID 
select o).Distinct(); 

我可以做同樣的匿名查詢,像這樣

Customers.Select(x => x.Orders)

如果我的查詢深度是3或4表格深度,我該如何做到這一點?

+0

什麼是匿名的? –

+0

該語法被稱爲「Lambda」。匿名類型是一個完全不同的概念。這意味着你返回(來自任何linq,lambda或其他)匿名類型。您應該在線查詢關於linq查詢,lambda表達式和匿名類型的定義以清除您的想法。 –

+0

@Matteo:現在好了_that_有道理。 –

回答

0

你有或多或少相當於該查詢:

var labels = db.Customers 
    .Join(db.Orders, c => c.CustID, o => o.CustId, (c, o) => o) 
    .Distinct(); 

僅供參考,它可以通過不同的名稱去。 「Lambda」語法是常見的語法。 「流利」語法是另一種。沒有什麼匿名的。另一方面,匿名類型是一個未命名的類型,如下所示:

var anonymousObject = new { SomeField = 2, SomeOtherField = "Foo" };