問題タブ [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.
web-applications - dlinq と ADO.NET Entity Framework の比較
Web アプリケーションの設計を完成させようとしています。それを n 層アーキテクチャとして構築しており、DLinq と EFM のどちらを使用するかという問題が提起されています。誰かが私に専門家のアドバイスをくれれば幸いです。
.net - LINQの動的where句-実行時に列名を使用可能
免責事項:System.Linq.Expressionsの式を使用して問題を解決しましたが、それでもより良い/より簡単な方法を探しています。
次の状況を考慮してください。
ブラックリストに登録された用語に対してチェックする必要のある列/属性は、実行時にのみ使用できます。この動的なwhere句を生成するにはどうすればよいですか?
さらに複雑なのは、Queryableコレクション(上記のdb.Customers)が「Customer」(たとえば「Person」)の基本クラスのQueryableに入力されるため、上記のようにc.Addressを書き込むことはオプションではないことです。
linq-to-sql - DLINQ-.InsertOnSubmit(...) なしで挿入されるエンティティ?
DLINQ の使用中に興味深い問題に遭遇しました。エンティティをインスタンス化すると、DataContext で .SubmitChanges() を呼び出すと、.Insert[All]OnSubmit(...) を呼び出すことなく、新しい行がデータベースに挿入されます。
上記のコードを実行すると、データベースに新しい行が挿入されます。XML ファイルを解析していくつかのテーブルにデータを入力するアプリを作成しているときに、この影響に気付きました。約 50 程度しかないと予想していたときに、1000 以上の挿入があることに気付きました。その後、最終的にこの動作を分離しました。
これらのオブジェクトが暗黙的に永続化されないようにするにはどうすればよいですか?
ありがとう -チャールズ
c# - ユーザーが直接入力する動的 LINQ、危険性はありますか?
ASP.NET MVC アプリケーションに、AJAX を使用して並べ替え可能 (サーバー側) およびフィルター可能にしたいテーブルがあります。他の場所でもかなり簡単に使用できるようにしたかったのですが、並べ替えとフィルター処理をクエリ式にハードコーディングするのは気が進まなかったので、式を動的に作成する方法を探しました。これを行うための最良の方法は、Dynamic LINQ を使用することでした。 .
以下のような URL からのユーザー入力は、動的 Where または OrderBy に直接挿入されます。
これにより、次の 2 つの式が生成されます。
データベースに直接スローされず、ここに直接SQLを挿入してもプロパティに反映できず、タイプセーフであるため機能しないことは理解していますが、私よりクリエイティブな人がいるのだろうか関係なく、それを悪用する方法を見つけることができます。私が考えることができる 1 つのエクスプロイトは、テーブルに表示されていないプロパティを並べ替え/フィルター処理できることですが、それでも表示されず、ハッシュによって防止できるため、これはそれほど有害ではありません。
ユーザーが直接入力できる唯一の方法は、OrderBy と Where を使用することです。
確認するだけです、ありがとう:)
asp.net-mvc - ロール メンバーシップまたはデータ関係 (所有権) に基づく ASP.NET MVC 承認
ASP.NET MVC の AuthorizeAttribute を拡張して、ロール メンバーシップまたは問題のデータの「所有権」に基づくユーザーの承認の概念をサポートするようにしたいと思います。データ アクセスには LINQ2SQL を使用しています。asp.net mvc authentication using rolesにも同様の質問があります。
私が考えているのは、拡張された AuthorizeAttribute クラスに EntityProperty、UserProperty、RouteParameter、および JoinTableType パラメーターを追加することです。最初の 2 つは、チェックする結合テーブル内のプロパティの名前です。RouteParameter は、一致する EntityProperty の値を抽出するルート パラメーターの名前になります。現在のユーザー名を使用して、ユーザーのテーブルからユーザー ID を取得します。JoinTableType パラメーターは、ルート パラメーター値とユーザー ID が一致する必要がある Entity と UserProperties を含むデータ コンテキスト内のテーブルの型になります。
基本的な考え方は、擬似コードで次のとおりです。
is related テストは次のようになります。
私の質問は、LINQ クエリを作成する際に型とプロパティの名前をどのように使用すればよいかということです。それとも、これをすべてobject
リフレクションで行う必要がありますか。これを簡単にする方法についてのアイデアを本当に探しているので、他の提案もいただければ幸いです。チェックをアクションに直接埋め込むよりも、属性を使用して、他のアクションの処理方法と一貫性を保つことをお勧めします。
linq - コンボボックス値に基づく動的 LINQ クエリの作成
Silverlight にコンボ ボックスがあります。これには、LINQ-to-SQL オブジェクト (名前、住所、年齢など) の 1 つのプロパティから構築された値のコレクションがあります。コンボ ボックスで選択した値に基づいて結果をフィルター処理したいと考えています。
例: 姓が「Smith」の全員が必要だとします。ドロップダウン リストから [姓] を選択し、テキスト ボックス コントロールに smith と入力します。通常、次のようなLINQクエリを作成します...
var query = from p in collection
where p.LastName == textbox.Text
select p;
おそらくリフレクションを使用して、プロパティを動的に決定することは可能ですか? 何かのようなもの
var query = from p in collection
where p.(DropDownValue) == textbox.Text
select p;
dynamic-linq - 属性を使用した動的 LINQ クエリ
MSFT Dynamic Linq を機能させることにある程度成功しましたが、今度は属性を含む「Where」句を作成する必要があります。
表示されるエラーは、「適用可能な集計メソッド 'First' が存在しません」です。
これが私のコードです:
ここに私のXMLがあります
c# - Dynamic Linqを使用してフィールドに名前を付ける方法は?
動的に作成されている巨大なクエリがありますが、select ステートメントで列名を出力せず、カスタム値を出力したいと考えています。たとえば、通常の Linq クエリを実行している場合、次のようなことができます。
これにより、素敵な '.name' および '.price' アクセサーが得られます
ただし、Dyanmic Linq を使用している場合は、次のようにできます。
正常に動作しますが、
エラーが表示されます: 「プロパティまたはフィールド 'name' がタイプ 'item' に存在しません」
これはできますか?
c# - アイテムのリストを使用してDLINQでContains()を実行するにはどうすればよいですか?
タイトルに任意の数のアイテムが含まれているかどうかを確認するdlinqクエリを作成したいと思います。リストでできることは知っていますが.Contains()
、アイテムにタイトルの一部が含まれているかどうかではなく、タイトルにアイテムが含まれているかどうかを確認する必要があります。例:リストに「ベーコン、チキン、ポーク」の3つのアイテムがあります。それに合わせて「鶏舎」の称号が必要です。
最初の2つの答えを試してみると、エラーが発生します"Local sequence cannot be used in LINQ to SQL implementation of query operators except the Contains() operator."
3番目の解決策は私に
メソッド'System.ObjectDynamicInvoke(System.Object [])'には、SQLへの変換がサポートされていません。 "
linq-to-sql - LINQ to SQL を使用して実行時にテーブル名を指定するにはどうすればよいですか?
LINQ to SQL を使用する必要があり、それに加えて純粋な SQL クラシック クエリを使用する必要があります。この SQL クエリには、データが生成されるテーブルがありますが、以前はこのテーブルを知りません。コンパイル時に認識されます。
では、クエリを作成したいテーブルから LINQ を理解させるにはどうすればよいでしょうか。