匿名型のシーケンスを生成するlinqクエリがあります。クエリは次のように定義されています一連の匿名型を生成するlinqクエリのグローバル変数を宣言する方法
var query = from a in Db.Table1
join b from Db.Table2
join...
...
select new {
a.field1, a.field2,
b.field1, NewName = b.field2 };
今、私は次のシナリオでは、このクエリを使用したいと思います:
if (x == 1)
{ query = ...
...rest of code_1 }
if (x == 2)
{ query = ...
...rest of code_2 }
最初の異なるテーブルを使用します「の場合」、合流どこの文から「QUERY」 2番目の 'if'からのクエリよりも、両方が正確に同じ 'select new'ステートメントを持ちます。
これを行うには、変数 '照会'を宣言する必要があります。これは 'if'ステートメント内で表示されます。私が使用して「クエリ」の「種類」を確認
:私は唯一の内側に書くことができるよう
query type = 'System.Data.Objects.ObjectQuery`1[<>f__AnonymousType7`14[System.Int32,System.String,System.String,System.String,System.Nullable`1[System.DateTime],System.Decimal,System.Nullable`1[System.DateTime],System.Decimal,System.String,System.String,System.String,System.String,System.String,System.String]]'
は、私は別のクラスを宣言することはできません。
query.GetType().ToString();
それは私を与えます私がコードを書いている方法。 'クエリ'変数はどのように宣言する必要がありますか?
あなたは非ジェネリック '' IQeuryable'or dynamic'を使用することができます。 – Michael
あなた自身のために問題を作成するだけで多くの問題があるようです。 –
IQueryableでは、後で使用できないif(query.Count()> 0) - そうですか? – phoenix