3


2

必要に応じて、一部のビジネスアナリストがSQLではなくlinqで記述できるようにしたいと思います。 企業がlinqpadをインストールすることを許可することを決して望めないので、vs2008プロジェクトで単純なlinqクエリまたは式を言うことを許可する方法をどこから学ぶのでしょうか。

linq式をコンパイルして実行するような、.net用のeval()関数の種類はありますか?

4 Answer


3


動的にコードを実行する方法については このチュートリアルをご覧ください。 それはかなり完成していて、望むならLinq名前空間とあなたのDALだけに使用を制限することができます。 また、(たとえば)複数のステートメントを実行していないことを確認するためのチェックや、高度なデータ視覚化を追加することもできます。


2


私はあなたがJavaScriptスタイルのevalを意味していると思いますか? 残念ながら、BCL、C#、VBにはあなたが探している振る舞いを与えるようなevalスタイルの関数はありません。


1


チェックアウトhttp://linqcompiler.codeplex.com/


0


直接ではありませんが、遅延表現を構築して呼び出すことができます。 違いはあなたがあなた自身の式ビルダーかDSLパーサーを実装しなければならないということです。 WHERE句をサポートする必要があるだけなので、XMLシリアライゼーションを使用してPredicateオブジェクトを実装したので、人間が読めるパーシスタンスフォーマットを使用できます。 もっとSQL的なものが欲しいなら、Scott GuのDynamic LINQ Query Libraryを使うことができます。これは、キー式の型のLINQ構文述語を解析します(Where、OrderBy、Selectなど)。 完全なLINQ構文が不要な場合(つまり、各述語を区切ることができます)、これを直接使用できます。 完全なLINQ構文が必要な場合は、解析を追加する必要がありますが、実際にはキーワードと述語のペアを見つけてそれらを動的に実行するだけのことです。