問題タブ [linq-query-syntax]

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 投票する
3 に答える
74607 参照

c# - linqを使用してオブジェクトの特定のプロパティのリストを返す

次のようなクラスがあるとします。

私が今持っているとしましょうList<Stock>。すべての StockID のリストを取得し、それを IEnumerable または IList に入力したい場合。明らかに私はこれを行うことができます。

しかし、Linq を使用して同じ結果を得る方法はありますか? 私はそれができると思っDistinct()たが、望ましい結果を達成する方法を見つけることができなかった.

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

c# - ストアド プロシージャを LINQ に変換する

私は MVC3 を使用していますが、まだ LINQ を学習しています。クエリを LINQ to Entities に変換しようとすると、問題が発生します。Jsonメソッドを返したい

私のストアドプロシージャ

私が持っているのはいくつかのテーブルです。LINQ でこれを書き始めましたが、正しい型を適切に返す方法やキャストする方法がわかりません。

私のコントローラー

クエリのパラメーターを渡す方法、データを json 形式で返す方法を教えてください。

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

c# - Linq クエリを正しくフィルタリングする

一連のショップから売上を取得し、それらをリストとして返すこのクエリがあります。レポート要求画面で、ユーザーは多数の ID (ShopOwnerId、ShopRegionId、ShopTypeCode など) でフィルタリングできます。

私のクエリは、選択した日付間のすべての売上を取得し、選択に応じて絞り込むように構成されています。これは明らかに非常に非効率的です。:

このメソッドは、フィルターが選択されていない場合にのみ、特定の日付の間で sales テーブルをクエリすることがわかります。

私が立ち往生しているのは、ユーザーが複数のフィルターを選択できることです。たとえば、regionId と ShopTypeCode を選択する可能性があるため、if フィルターごとに ctn.ShopSales を照会したくありません。選択すると、以前に取得した値が消去されます。

この問題を回避する方法について誰かアドバイスはありますか? さらに情報が必要な場合は、お尋ねください。

ありがとう

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

c# - Linq-to-SQL、式を渡す>クエリ構文でメソッドを選択する

次のコードがあるとします。

セレクターを式として抽出して別の場所に保存したい。メソッド構文では、次のようになります。

このLinqToSqlメソッドチェーンを、式変数を所定の位置に保持したままクエリ構文に変換することは可能ですか?

UPD:

私の質問を明確にするために、左結合にDefaultIfEmptyを使用しています。これは、等しいクエリの短い形式です。

インライン式を使用してコンパイルされるため、これは正常に機能します。null対応するがない場合は、[名前]フィールドに割り当てgruntます。ただし、このクエリを外部マッパーメソッドの呼び出しで書き直すと、メソッド呼び出しにコンパイルされます。これにより、null許容gruntの引数が取得され、NullReferenceExceptionが発生します。

もちろん、マッパーメソッドにヌルチェックを追加することはできますが、DALで達成しようとしているのは、セレクターをマッパークラスに抽出し、そこでヌルチェックを省略することです。

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

c# - EF LINQ メソッド構文をクエリ構文に変換する

LINQ クエリ構文を使用して、これとまったく同じクエリをどのように記述しますか?

これは機能するはずですが、機能しませんでした:

試してみたい場合のテストプログラムは次のとおりです。

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

entity-framework - アソシエーション間の LINQ クエリ

データベースから生成された Entity Framework があります。このデータベース内には、Employee_ID と User_Name の 2 つのフィールドで構成される User_Security_Role というテーブルがあります。どちらのフィールドも主キーとして機能し、外部キーでもあります。フィールドは、Sytem_Role (PK として Role_ID を持つ) と User_Identity (PK として User_Name を持つ) の 2 つのテーブルからのものです。.edmx ファイルが生成されると、User_Security_Role テーブルはテーブルとしてではなく、System_Role と User_Identity の 2 つのエンティティ間の関連付けセットとして生成されます。

次のクエリで EF をクエリしたいと思います。

ただし、「User_Security_Role」はエンティティ セット内のエンティティとして表示されず、アソシエーション セットであるためクエリを実行する方法がわかりません。エンティティではなく関連付けからデータを選択する linq クエリを作成するにはどうすればよいですか?

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

.net - Lambda を使用して LINQ 内包クエリ構文をメソッド構文に変換する方法

次の LINQ クエリ構文をラムダ (ドット表記) を使用したメソッド構文に変換するツール、プロセス、またはソリューションはありますか? 次のクエリ構文をこのようなメソッド構文に変換するソリューションが期待されます。

以下へ

メソッド構文をよりよく学ぶためにこれを使用したいと思います。

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

linq - CRM2011プラグインの同じステートメントで複数のJOINを使用するとLINQエラーが発生します

こんにちは私はCRM2011で複数のエンティティに参加しようとしていますが、{"'xrmsm_sessionEnrollments'エンティティにName='xrmsm_termsid'の属性が含まれていません。"}というエラーが表示されます。それは正しいですが、私はその属性を持つエンティティに参加しています。

私のLinqクエリ:

var query2 = from e in svsContext.xrmsm_sessionEnrollmentsSet

p>

SQL Serverで機能する元のSQLクエリ:

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

vb.net - クエリ式の構文で (Enumerable.GroupBy ではなく) Queryable.GroupBy を指定できますか?

クエリ式構文でa を記述すると、コンパイラは目的のターゲット メソッドとしてGroup By自動的に選択し、.の代わりに backを取得します。つまり、後続の呼び出し ( my 内) では、 の代わりに が期待されます。代わりに を強制的に使用して を返す方法はありますか?Enumerable.GroupByIEnumerableIQueryableg.SumSelectFunc(Of TSource, int)Expression(Of Func(Of TSource, int))Group ByQueryable.GroupByIQueryable

考案されたサンプルコード

なぜ私はこれをしたいのですか? コンパイラは、ターゲット変数の型に基づいてラムダと式を自動的に変換します (つまり、 と の両方Dim f As Func(Of String, Integer) = Function(x) x.Length()が有効Dim e As Expression(Of Func(Of String, Integer)) = Function(x) x.Length()です) 。IEnumerableIQueryable

問題は、LINQ to Entities (そして、他の db ベースの LINQ 実装を想定しています) は、式ツリーに依存して SQL に変換されることです。つまり、この古い質問で見つけたように、IEnumerableラムダ バージョンはan に対して機能しません。IDbSet

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

c# - クエリ構文を使用して順列を作成する方法

特定の列挙型の順列をできるだけ単純に返すメソッドを作成しようとしました。コード:

Iterator ブロック内のコードが簡素化されたので、単純に LINQ の単一のクエリ式にしようとしています。

このコードでネストされた には再帰があり、foreach別の可能性としてはforeach;の外側でも生成されます。これは、クエリ構文で書き直すのが難しい部分です。

私はこの答えを読みました:

C# 文字列順列

しかし、それは私にとっての解決策ではないと思います..

いろいろやってみましたが、そう簡単にはいかないと思います。どうすればそれを成し遂げることができますか?

Exchange方法は別の問題であり、私は質問をしました:

1回だけ繰り返して列挙項目を交換する方法は?

しかし、ここでは問題ではないと思います..)