これはそれより簡単ですね!私は文字列値として格納されている量を含むテーブルがあります。しかし、私のコードでは小数点以下の値を必要とし、IQueryableが作成しているクエリの一部として小数にキャストする必要があります。したがって、.ToList()の使用は不可能です。キャストはその背後のデータベースによって行われる必要があります。
このIQueryableは、基本的にIQueryablesのチェーンの一部です。そのため、次のクエリでは、この量のフィルタを追加して、より小さい選択を行うか、量の他の種類の計算を行うことができます。入力されるクエリは、すでにすべてのデータの副選択である可能性があります。
編集:私はここで働いているかを説明してみましょう:私は書くために、このメソッドのようなものがあります:IQueryable内で文字列を10進数に変換する方法
public static IQueryable<PriceList> GetPriceList(this IQueryable<PriceData> query) => query.Select(d => new PriceList{Name = d.Item.Name, Price = decimal.Parse(d.Value)}).AsQueryable();
をそしてPriceDataは、文字列値としていくつかのフィールドと価格を含むレコードです。しかし、PriceListレコードにはDecimalとしてそれらが必要です。
この方法は、その後の選択、数学などのために、別の拡張方法で使用できます。 decimal.parseやその他のオプションはIQueryable内では機能しません。
どのように '( "someTable FROM CONVERT(量、DECIMALを選択)")dbContext.someTable.SqlQuery AsIQueryable()'について。? –
もし私がそれを行うことができれば、ええ。しかし、いいえ。私は入力としてIQueryableを取得し、大きな式ツリーのすべての部分であるので、出力としてIQueryableを取り除かなければなりません。 –
なぜ最初のインスタンスの価格は文字列ですか?これは間違っているようです。 (そしておそらくMoney、Decimalでなければなりません)。つまり、おそらく* https://stackoverflow.com/questions/12118258/int-parse-in-linq-expression –