使用匿名类型的多表LINQ-SQL查询

时间:2011-08-02 10:44:31

标签: linq-to-sql

我正在使用.NET 4.0运行ASP.NET MVC + LINQ-to-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个表深,我该怎么做?

1 个答案:

答案 0 :(得分: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" };