2
var emp = (from a in AdventureWorks.PersonPhones
                               join b in AdventureWorks.People
                               on a.BusinessEntityID equals b.BusinessEntityID
                               join c in AdventureWorks.PhoneNumberTypes
                               on a.PhoneNumberTypeID equals c.PhoneNumberTypeID
                               select new { a, b, c }).OrderBy(n => n.c.Name);

匿名型クラスの値を選択するこの linq クエリがあります。このクエリを somemethod() に渡し、そのメソッドの「emp」に格納されているこのクエリで toList() を呼び出したいだけです。ありがとう!

4

3 に答える 3

1

厳密に型指定された方法で匿名型を渡すことはできません (オブジェクトとしてのみ)。匿名型構造を表す型を作成するか、オブジェクト型でリフレクションを使用するか、このメソッドで ToList() などを実行する必要があります。

于 2013-05-29T20:59:49.730 に答える
0

次のように渡すことができますIQueryable<dynamic>

public void SomeQueryMethod(IQueryable<dynamic> query)
{
       var result = query.First();

       var a = result.a; //dynamic resolution
} 
.... 
SomeQueryMethod(emp); //this should work

ただし、このメソッドでは、結果オブジェクトのすべてのプロパティ アクセスが「動的」になり、コンパイル時のチェックは行われません。

于 2013-05-29T21:50:04.223 に答える