問題タブ [dynamic-linq]

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 に答える
2737 参照

c# - Dynamic Linq - 実行時に orderby 式の型を設定する

私は動的Linqを使用しており、where句が機能しています。現在、orderby 句を追加しようとしていますが、動的式の型を設定できないという問題があります。以下は私が持っている作業コードです:

orderby 式でさまざまなプロパティを使用する必要があるため、次のコードのように機能しないものを使用したいと考えています。

コンパイラは、orderExpression を宣言する行に満足していません。実行時に Func のタイプを設定する方法はありますか?

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

c# - 動的クラスに含まれる Linq の結果にアクセスする

この質問では、Linq2SQL に相当する DbLinq を使用しています。実行時に返す列を指定する Linq2SQL クエリを生成する必要があります。Dynamic Linq 拡張メソッドを使用してそれを達成できますが、結果を抽出する方法がわかりません。

Linq 式は、次の適切な SQL を生成します。

デバッガーでは、電話番号の値が結果ビューに表示されていることがわかります。問題は、queryResult オブジェクトから phonenumber 値を取得する方法がわからないことです。queryResult のタイプは次のとおりです。

編集:それを行う方法を発見しましたが、それは非常に粗雑に思えます。

おそらく誰かがよりクリーンな方法を知っていますか?

0 投票する
4 に答える
1820 参照

linq-to-sql - 指定された列に最大値を返すLINQクエリまたはストアドプロシージャ

のようなテーブル

1日1秒あたり1行(= 86400行)。〜40列; すべて同じ形式
私は、列が指定する最大値と時間を取得する方法を探しています。

時間枠内で指定する列の最大値とそれに応じた時間を取得する方法を探しています。

何かのようなもの

動作しますが、列をパラメーターとして使用できません。

LINQソリューションまたはSPが最適です。

最大値を取得するためにデータセット全体を並べ替えるときにパフォーマンスを心配する必要がありますか?たぶんMAX関数はもっと速くなるでしょう。

アップデート

Timothy(tvanfossen)が提案したように、動的なlinqの方法で実装しようとしました

ただし、これはテーブルの最初の値を返します。これは、最大値ではなく、時間枠の最初の値を返します。SQLプロファイラーを見ると、ORDER句がないことがわかります。
何か案が?

UPDATE 2
何らかの理由で、置換値がorderby句で機能しません。
.OrderBY(col + "desc")は機能します

0 投票する
6 に答える
2616 参照

linq - LINQ 動的式 API、DBNull.Value 比較による述語

Dynamic Expression API の使用に問題があります。DataTable フィールドを DBNull.Value と比較できないようです。APIは、「静的フィールドまたは静的プロパティへのアクセスをサポートできるようになっています。すべてのパブリックフィールドまたはプロパティにアクセスできます。」. ただし、次のクエリが与えられた場合:

最終的にエラーが発生します:「タイプ '<>f__AnonymousType0`2' にプロパティまたはフィールド 'DBNull' が存在しません」

誰でもこれを回避する方法についてアイデアがありますか? Where メソッドに渡される文字列で Submission.Field("NullableIntColumnName") を使用することはできません。そうしないと、DBNull.Value の代わりに null と比較できます。

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

linq - Dynamic Linq Entity Framework クエリを使用して奇妙な例外がスローされる

ギャラリー エンティティ フレームワーク クラスがあり、ScottGu のブログに投稿されたダイナミック Linq ライブラリを使用してエンティティ セットをクエリしようとしています。失敗したコード行は次のとおりです。

sidx=="名前"、および sord=="desc"。

Gallery オブジェクトには「Name」というプロパティがあります。ただし、実行すると、次の例外が発生します。

「タイトル」は、現在のスコープまたはコンテキストで解決できませんでした。参照されているすべての変数がスコープ内にあること、必要なスキーマが読み込まれていること、名前空間が正しく参照されていることを確認してください。単純な識別子の近く、6 行目、1 列目。

これが何を意味するか知っている人はいますか?

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

c# - コレクションの動的 LINQ?

私は、そのような大きな検索エンジンを実行するように依頼するプロジェクトを持っていますが、それはすべて動的です。つまり、「OR」または「AND」を使用した「どこで」の無限の可能性を内部に持つメインの「グループ」を 0 ~ 9 個ほど持つことができるということです。最初に考えたのは、動的クエリを作成するための優れた代替手段を提供する Dynamic Linq を使用することでした。これらはすべて自家製のラッパーで EF を使用しています。

問題: 「コレクション」にアクセスできません。つまり、参照されたオブジェクト ( Customer.State.StateName = "New-York" OR Custoemr.State.StateName = "Quebec"など) に簡単にアクセスできますが、次のようなものにアクセスする方法が見つかりません: " Customer.Orders.OrderID = 2 OR Customer.Orders.OrderID = 3" . これはコレクションなので簡単に理解できますが、どうすればよいですか?

私を助けてください!!

**私の英語でごめんなさい!!


アップデート

私は十分にはっきりしていないと思います。申し訳ありませんが、私はフランス人です...

私の問題は、静的なものがないためです。候補者を企業に配置する求人企業の候補者検索エンジンです。マネージャーが候補者を検索できるページで、ドメイン (ジョブ)、都市、またはユーザーが登録時に入力したその他の多くによって「解析」できます。これはすべてフォーマットされています(SQLの場合):

[...] WHERE (domaine.domainID = 3 OR domaine.domainID = 5 OR domaine.domainID = 23) AND (cities.cityID = 4, citys.city = 32) [...]

したがって、次のような通常のLINQ形式ではこれを行うことはできません:

括弧内の演算子も動的 (「AND」または「OR」) です。そのため、より柔軟な Dynamic Linq を使用しようとしています。

私の問題をより簡単に理解できることを願っています...


更新2 これが私の方法です

「ブール値を返さない」代わりにうまく機能します。では、どうすればいいですか?エラー : 「型 'Boolean' の式が必要です」。

最後に、「( Domaines.Where( DomaineId == 2 && DomaineId == 3 && DomaineId == 4 && DomaineId == 5 ))」のようなものを返します。私のLINQクエリに追加されます:

7 つまたは 8 つの「可能な」検索項目が追加されていることを忘れないでください。何かアイデアはありますか?

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

vb.net - LINQ で Lambda を取得して動的 linq を実際にフィルタリングする方法

例 - 個人クラスがあります

クラス終了

これでも、適用されていない場所のように、5 人全員が返されます。何が間違っていますか?

また、名前のリストを渡して、それらのみを返すことができるようにしたいと考えています

0 投票する
4 に答える
5148 参照

c# - 動的LINQ式でのNull参照例外

リストの順序付けを行うために、MicrosoftのDynamic Linq Library/Sampleを使用しています。たとえば、次のC#コードがあります。

オブジェクトが別のオブジェクトと0:1の関係にあり、グリッドに表示される可能性のあるプロパティを持っている場合があります。これを並べ替えようとすると、すべてのウィジェットにこの子がある限り、正常に機能します。Child.Name例えば注文しております。ただし、Childがnullの場合、null参照例外が発生します。

ここには、匿名型に選択してバインドできるオプションがいくつかあります。また、親オブジェクトでChild.Nameを公開し、コードを介してこれを処理することもできます(これは、このオブジェクトモデルを構成するのが好きではありません) )。

理想的な世界では、このケースを処理するためにライブラリを更新したいと思います。私がそれに飛び込む前に、誰かがこれに遭遇したかどうか、そしてすでに解決策を持っているかどうか疑問に思っていますか?

編集

説明が足りなかったようです。C#サンプルに付属しているDynamicLinqLibraryを使用しています。このライブラリは、ラムダ式の代わりに文字列を使用できるようにするいくつかの優れた拡張機能を追加します。したがって、私のコードは実際には次のようなものです。

もちろん、そこにある文字列はパラメータに置き換えられます。ただし、これにより、ユーザーがグリッドヘッダーをクリックしたときに、並べ替えを動的に変更できます。そうでなければ、すべての順列を処理するロジックを実行する必要はありません。

以下に説明する私の解決策は、私のすてきなクリーンな方法を次のように変更します。

これは機能しますが、子オブジェクト上にあるグリッドに公開する新しいフィールドまたはプロパティを追加するときに、このコードを更新する必要があることを意味します。

0 投票する
4 に答える
2359 参照

linq - Dynamic LINQを使用できる場合、仕様パターンは廃止されますか?

ウィキペディアによると、仕様パターンは、ブール論理を使用してビジネスロジックをチェーン化することにより、ビジネスロジックを再結合できる場所です。リストまたはコレクションからフィルタリングオブジェクトを選択することに関しては、DynamicLINQを使用すると同じことを実行できるように思えます。私は何かが足りないのですか?同様に考慮されるべき仕様パターンの他の利点はありますか?


編集:

LINQと仕様パターンの組み合わせについて説明している投稿をいくつか見つけました。

Linq仕様プロジェクト

Nicloas Blumhardt(Autofac dude)によるLinqを介した仕様パターンの実装

誰かがこの道を進んだことがあり、維持するのが複雑になりましたか?

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

asp.net-mvc - Asp.net MVC で選択したドロップダウン リスト オプションを使用して、Linq で動的クエリを作成します。

Linq to Sql および Asp.Net MVC でこれを達成しようとしています。

国、都市、州のオプションを含むドロップダウン リストがあります。そしてその横にテキストボックスがあります。たとえば、ユーザーが City を選択し、テキストボックスに「new york city」と入力すると、アプリケーションは選択した結果を表示します。

では、ユーザーがドロップダウンで選択したものに基づいて動的クエリを作成するにはどうすればよいでしょうか? このクエリを他のもので使用するつもりなので、何かをハードコーディングしようとしているわけではありません。

どうもありがとう!!