問題タブ [linq-expressions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 式の変換方法> 式へ>
に変換する方法はありExpression<Func<T, object>>
ますExpression<Func<object, object>>
か?
linq-to-entities - 別の LINQ 式と値に基づいて特定の LINQ 式を作成する
次の形式の LINQ 式がある場合:
以下の式にたどり着く方法はありますか?
Linq-to-Entities Where 呼び出しで 2 番目の式を使用する必要があります。
optimization - LINQ 式を最適化する方法は?
.NET 3.5 でビルドされたプロジェクトで、LINQ 式を使用して実行時にコードを動的に生成しています。LINQ 式は Compile メソッドを使用してコンパイルされ、後で LINQ to オブジェクトの述語として使用するために格納されます。
式は非常に複雑で、デバッグが難しい場合があります。
以下は、Visual Studio のデバッガー ビジュアライザーで表示される式の例です。
{request => (Invoke(workEnvelopeHead => (workEnvelopeHead.Method = value(Wombl.Scenarios.CannedResponses+<>c_ DisplayClass58).pipeline), request.WorkEnvelope.Head) And Invoke(body => Invoke(value(Wombl.Scenarios) .CannedResponses+<>c _DisplayClass78).isMatch, body.SingleOrDefault()),Convert(request.WorkEnvelope.Body.Any)))}
上記のような式を最適化して、value(Wombl.Scenarios.CannedResponses+<>c__DisplayClass58).pipeline
式が変数の値である定数に置き換えられるようにしたいと考えています。
この特定のケースでvalue(Wombl.Scenarios.CannedResponses+<>c__DisplayClass58).pipeline
は、親スコープ内の変数へのラムダ内の参照です。何かのようなもの:
最適化された元の式は次のようになります。
{request => (Invoke(workEnvelopeHead => (workEnvelopeHead.Method = "[My variable's value here]", request.WorkEnvelope.Head) And Invoke(body => > Invoke(value(Wombl.Scenarios.CannedResponses+<>c__DisplayClass78)) .isMatch, body.SingleOrDefault()),Convert(request.WorkEnvelope.Body.Any)))}
コンパイルする前に、実行時に LINQ 式に対してそのような最適化を行うにはどうすればよいですか?
c# - linqtoentitiesの動的ソートメソッドの作成
重複の可能性:
動的LINQ OrderBy
私はEntityFrameworkを使用しており、。などの並べ替えを行うための文字列を入力できる独自の動的並べ替えメソッドを作成したいと思いますquery.DynamicSort("Name, Age DESC")
。
MSがいくつかの動的なlinqコードを出力したことは知っていますが、それは私が必要とする以上のものであり、ソートのためだけにその簡略化されたバージョンを自分で作成する方法を理解しようとしています。
単一のフィールドで機能するように運が良かったのですが、複数のフィールドで並べ替えようとすると、次のエラーが発生します。
パラメーター'x'は、指定されたLINQtoEntitiesクエリ式にバインドされていませんでした。
これが私のコードです。誰かが私がどこで間違っているのかを見て、おそらくいくつかの修正を提案できますか?式を動的に作成するのが苦手です。
どうもありがとう。
c# - Expression[] で (params object[]) を呼び出す
Linq.Expression ツリーで String.Format を呼び出そうとしています。簡単な例を次に示します。
ただし、問題は String.Format に次の署名があることです。
Expression[] を渡そうとしています。
これで、配列を作成し、式の結果を入力するというすべての問題を解決できましたが、実際に結果を望んでいるのは次のようなものです。
Linq 式を介して params 関数を呼び出すにはどうすればよいですか?
c# - いくつかの類似した SELECT 式を 1 つの式に結合する
いくつかの類似した SELECT 式を単一の式に結合する方法は?
c# - Linq 式による左外部結合
Linq Expressions を使用して左外部結合クエリを作成しようとしていますが、今は本当に壁にぶつかっています。
私が達成したいのは、次のクエリです。
次のクラスを定義しました。
コンパイル エラーが発生しない GroupJoin 式を作成しました。(私はここにいくつかのコードを残しました):
しかし、 SelectMany メソッドで DefaultIfEmpty を追加しようとしていますが、次のような例外が発生します。
型 'System.Linq.Queryable' のジェネリック メソッド 'DefaultIfEmpty' は、指定された型引数および引数と互換性がありません。メソッドが非ジェネリックの場合は、型引数を指定しないでください。
typeparams を IQueryable から IEnumerable に切り替えてみましたが、イベントが Enumerable.DefaultIfEmpty を呼び出そうとしましたが、うまくいきませんでした。おそらく、PropertyExpression に何か問題があるのでしょうか?
linq - 式のコレクションを作成する方法>?
私は次の方法でリポジトリを持っています:
複数の式を渡す必要があります。私は署名を次のように変更することを考えていました:
- これは可能ですか?
- このメソッドに渡す式の配列などを作成するにはどうすればよいですか?
現在、次のようにサービスレイヤーからメソッドを呼び出しています。
p => p.Variants
しかし、私は合格したいと思いp => p.Reviews
ます、例えば。次に、リポジトリで式を繰り返し処理して、クエリに追加します。
私がこれを行っている理由の背景については、NHibernateを使用したEagerのロードに関するBenFosterのブログ投稿を参照してください。
linq - Linq to Entities:「平均的な」レストラン評価を取得する複雑なクエリ
だから私は私のコミュニティのためにレストランレビューサイトを構築しています。次のテーブルからデータを抽出する必要があります:RESTAURANT、CUISINE、CITY、PRICE、およびRATING(顧客の評価)。
クエリは、選択したCUISINE_IDのすべてのレストランを返し、RESTAURANT_NAME、CUSINE_NAME、CUTY_NAME、PRICE_CODEを返し、すべてのレビューRATING_CODEを平均して、計算値を返す必要があります。平均評価を除くすべてのデータを返しても問題ありません。
私はLINQtoEntitiesを2日間、LINQを約3週間しか使用していないので、本当に初心者です。LINQブックがAmazon.comから配信されるのを待っています。あなたの助けのガイダンスはありがたいです!