2011-08-02 11 views
0

.NET 4.0を使用してASP.NET MVC + LINQ-to-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

その構文は "ラムダ"と呼ばれます。無名型は全く異なる概念です。これは、あなたが何らかのlinqやlambdaなどから匿名型を返すことを意味します。あなたは、あなたの心をきれいにするために、linqクエリ、ラムダ式、および匿名タイプに関する定義をオンラインでチェックするべきです。 –

+0

@マッテオ:ああ、今、それは理にかなっています。 –

答えて

0

あなたは多かれ少なかれ同等のこれまで存在している必要があり、クエリ:

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

FYI、それは別の名前で行くことができます。 「ラムダ」構文は一般的な構文です。 「流暢な」構文は別のものです。それについて匿名のことは何もありません。一方、匿名型は次のように定義された名前のない型です:

var anonymousObject = new { SomeField = 2, SomeOtherField = "Foo" }; 
関連する問題