1

Lets say we have an expression:

var prices = from p in PriceDB.Prices
             where p.TypeID == 12
             orderby p.PriceType.Title
             select p;

Is it possible to modify the select list?

I imagine it looking something like this:

var newPriceList = prices.Select( p => p.ExchangeRate );

This may be an odd request, but in my code (which is too long and complex to post here) I want to conditionally add fields to be output depending on a CheckBoxList.

I assume, of course, that I'm trying to go about this the wrong way...

4

4 に答える 4

1

私はそれが次のように見えると想像します:

実際、それはまさにそのように見えます。まず、レコード全体を選択してクエリを作成します。次に、select を追加して (Select() メソッドを使用するのが最も簡単な方法のようです)、選択範囲を制限します。Linq-to-Sql は 2 つの選択を整理し、適切な reselt を使用するため、最終的な SQL には 1 つの選択しかありません。

複数の選択の中から選択するための本当に良い方法はありません。おそらくスイッチ/ケースを使用します。

于 2010-08-17T11:12:26.243 に答える
0

動的ルートをたどることもできますが、そうしないことを強く検討します。特定のケースで、余分な値が必要ない場合、余分な値を取得するコストはいくらですか? それらが動的に表示されていて、特定の場合にのみ表示したいという問題はありますか? もしそうなら、何らかの形で表示コードを変更することをお勧めします。

取得するものに関して動的でありながら、強く型付けされた状態 (さまざまな利点があります) を維持することは困難です。もちろん、常に同じ「形状」のデータを取得したい場合 (たとえば、常にdecimal各行から値を取得する場合) はかなり簡単です。

問題について詳しく教えていただければ、別の解決策を提案できる場合があります。

于 2010-08-17T10:22:50.483 に答える
0

あなたが正しいことを理解していれば、これは動的クエリを作成する方法を説明しています:

http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx

于 2010-08-17T10:22:56.370 に答える
0

このDynamic LINQ と Dynamic Lambda 式を見てみませんか?

または動的式 API (System.Linq.Dynamic)。

于 2010-08-17T10:20:25.733 に答える