問題タブ [expression-trees]

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.

0 投票する
2 に答える
461 参照

c# - Expression.AddChecked および System.Int16

与えられた 2 つのショーツ ( System.Int16)

OverflowExceptionそれらを追加するときに取得したい。

left+rightの結果は であるため、機能しませんInt32

期待どおりに動作します。

私の問題は、式ツリーを使用すると、「トリック」が機能しないことです。

呼び出しf()はオーバーフロー例外をスローしませんが、 を返します-32768。どうしたの?

0 投票する
7 に答える
26766 参照

c# - 式ツリーの実用化

式ツリーは素晴らしい機能ですが、その実用的な用途は何ですか?それらは、ある種のコード生成やメタプログラミングなどに使用できますか?

0 投票する
5 に答える
4346 参照

c# - Expression.Or、パラメーター 'item' はスコープ内にありません

Or two 式に静的関数を書き込もうとしていますが、次のエラーが表示されます。

パラメータ 'item' はスコープ外です。

説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。

例外の詳細: System.InvalidOperationException: パラメーター 'item' はスコープ内にありません。

メソッド:

編集:さらに情報を追加

or'd されている式は、以下のメソッドから取得されており、正常に実行されます。より良い方法や結果があれば、私はすべて耳にします。また、事前にどれだけの数が実行中または実行中かわかりません。

編集:さらに情報を追加する

または、or を実行するより良い方法はありますか? 現在、.Where(constraint) は、制約が Expression> 型の場合に問題なく機能します。どこで(制​​約1または制約2)(制約n番目まで)を行うにはどうすればよいですか

前もって感謝します!

0 投票する
5 に答える
6059 参照

c# - LINQ to SQL では、LINQ クエリの一部を関数に渡す方法

linq クエリの一部を関数に渡すことは可能ですか? 常に同じクエリ インターフェイスを使用する DAL 用の共通インターフェイスを作成したいと考えています。例えば、

このようなことは可能ですか?式ツリーで行うと考えていますが、その例を見つけることができませんでした。

0 投票する
3 に答える
620 参照

c# - MemberExpressions ターゲットのスコープの決定

カスタム Linq プロバイダーを作成した経験のある人はいますか?

私がやろうとしているのは、ビジネス オブジェクトのプロパティである MemberExpression を SQL に含める必要があるか、それとも定数として扱う必要があるかを判断することです。これは、たまたまビジネス オブジェクトであるローカル変数からのものであるためです。

たとえば、これがある場合:

現時点では、クエリ トランスレータは を実行しようとしますがSELECT * FROM orders o where o.CustomerID = c.CustomerID、もちろん動作しません。

私がやりたいのは、上のMemberExpressionを調べて、c.CustomerIDそれがローカル変数なのか、それともLinq式の一部として使用されているものなのかを調べることです.

SQL Serverがバインドできないフィールドを探し、代わりにそれらの値を注入するクエリの2回目のパスとしてそれを行うことができましたが、可能であればすべてを同時に実行したいと思います. 式のTypeプロパティ、 andを調べてみましたIsAutoClassが、 Auto という単語が含まれていたため、推測に過ぎませんでした。そして、それはうまくいきませんでした:)

0 投票する
3 に答える
730 参照

c# - デリゲート インスタンスを Lambda 式にキャストすることはできますか?

ここに私の質問の文脈があります:

一般的な手法は、メソッドのパラメーターをデリゲートではなく Lambda 式として宣言することです。これは、メソッドが式を調べて、デリゲート インスタンスの本体でメソッド呼び出しの名前を見つけるなどの興味深いことを実行できるようにするためです。

問題は、Resharper の intelli-sense 機能の一部が失われることです。メソッドのパラメーターがデリゲートとして宣言されている場合、Resharper は、このメソッドへの呼び出しを記述するときに役立ち、このメソッドに引数値として提供する x => x 構文を使用するように促します。

だから...私の質問に戻って、私は次のことをしたいと思います:

0 投票する
1 に答える
357 参照

c# - 式ツリーでReadLineを作成する最良の方法は何ですか?

コンソールから式ツリーへのユーザー入力を取得したい場合。それを行うための最良の方法は何ですか?変数「名前」をダックタイピングする方法は?

これが私のコードです。

0 投票する
1 に答える
584 参照

linq-to-sql - Linq 式ツリーを使用して柔軟な高度な検索を設計するためのパターンまたは手法

ASP.NET/SQL Server 2005 アプリケーションに「高度な検索」機能を追加したいと考えています。理想的には、テーブル駆動にしたいと思います。たとえば、検索したいテーブルに新しい列が追加されてスキーマが変更された場合、新しい列が検索可能なフィールドとして追加されたことを UI に反映させたいと考えています。検索可能なフィールド、そのタイプ、関連するルックアップなどを含むいくつかのコントロール テーブルを想像できます。

これらのテーブルは、UI を構築するときに参照できます。私の質問は、動的 SQL を作成するための最良のアプローチにあります。1 つの方法は、パラメーター化された SQL ステートメントを自分で作成することです。しかし、私は Linq に興味をそそられており、どういうわけか、System.Linq.Dynamic 名前空間 (およびLinq 式ツリー) がより洗練された堅牢なソリューションを提供するのではないかと思います。

うまくいけば、そのようなソリューションは、Linq to Sql または Linq to Entities のいずれかで機能します。このパスを調査するのは正しいでしょうか、それともこの問題空間は実際には式ツリーのユース ケースの 1 つではありませんか?