問題タブ [linqkit]
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.
c# - 複雑な多対多の関係を照合するための Linq 式
2 つのエンティティがあるとします。
(動物は、食べられないものを含まないものなら何でも食べることができると考えます。) 特定の食べ物が与えられたので、どの動物にそれを食べさせることができるかを調べたいと思います。特定の動物が与えられた場合、その動物に何を食べさせることができるかを調べたいと思います。
逆の式は驚くほど似ています。
したがって、本当に意味のあるのは、結合された式です。
そして、どういうわけか上記の 2 つのメソッドは、式を呼び出す必要がありGetAllowedFoods
ます。 GetAllowedAnimals
IsAllowedDiet
これは、LinqKitが簡単に実行できるはずのことだと思いますが、LinqKit の初心者として、正しい構文がどうなるかわかりません!
asp.net-mvc - 関数に db オブジェクトとモデル オブジェクトを渡す方法
これを関数化したい。db オブジェクトと MVC モデル オブジェクトを渡します。元のコードは次のとおりです。
こういう機能が欲しい
c# - LINQkit を使用して LINQ to Entities Select 内で式を呼び出す
これが私がやりたいことです:
アップデート :
myExpression
複数の LINQ クエリで再利用したいので、クエリから分離しておく必要があります。
更新 2:
と に分けmyExpression
てmyExpression1
、myExpression2
別々に再利用したいという事実を明確にします。
更新 3:
例に LINQkit を追加しました。
問題 1スロー: タイプ 'System.Linq.Expressions.FieldExpression' のオブジェクトをタイプ 'System.Linq.Expressions.LambdaExpression' にキャストできません。
問題 2スロー: 内部 .NET Framework データ プロバイダー エラー 1025。
c# - LinqKit を使用した動的クエリは非常に遅いです。その場合、ストアドプロシージャの方が良いでしょうか?
LinqKit を使用して、動的に生成されたフィルターを使用してクエリを作成しています。
このクエリは、データベースから非常に大きなオブジェクト グラフをフェッチして計算を実行し、そのデータに対してその他の変更を行います。クエリで使用Includes
しない限り、必要なメイン エンティティをデータベースから取得するのに時間はかかりません。しかし、残念ながら、必要な計算を実行するには、関連するエンティティの多くが必要です。
を追加するたびに、これは SQL の新しいネストされたサブクエリInclude
に変換されます。私は約 8 または 9 を持っているので、これは多くのネストされたサブクエリに変換されます。そのクエリはデータを返すのに永遠にかかります。Inlcudes
これらのネストされたサブクエリをすべて SQL から消したいと思っていますが、アプリケーション側から LinqKit を使用して SQL を思いどおりに形作るのはちょっと難しいです。
その特定のケースでは、ストアド プロシージャを SQL を希望どおりに記述し、Entity Framework から呼び出すことをお勧めします。
私の問題は、ストアド プロシージャを使用してアプリケーション側でオブジェクト グラフを取得する方法がわからないことです。単一の「エンティティ」にすべてのデータを含めるEF を生成することができますComplexType
が、計算を行うコードは特定のエンティティ オブジェクト グラフ(メイン エンティティとそれに関連するエンティティ) を待機するため、コードはそれが何であるかわかりませんComplexType
。それを使用するために計算エンジンを書き直す必要はありませんComplexType
。結果を単一のエンティティにマップできますが、そのエンティティのみが返されます。関連エンティティも返してほしい。
私は岩とクレイジーな場所の間に挟まれているようです.
誰でも何か提案できますか?
c# - ジェネリック LINQ 式を使用して、Contains メソッドの大文字と小文字を区別しないを呼び出す
以下のコードを Generic Filter に使用しています。検索テキストは渡されますが、contains メソッドは大文字と小文字を区別します。大文字と小文字を区別しないようにするにはどうすればよいですか。
linq - LINQKit: LINQ to Entities で ExpandableQuery をネストする
LINQKitを共有データ アクセス レイヤーに組み込むことを試みてきましたが、障害にぶつかりました。を使用してネストされたクエリを構築する場合ExpandableQuery
、式パーサーは を正しくラップ解除しExpandableQuery
て有効な SQL クエリを構築することができません。スローされるエラーは次のとおりです。
System.NotSupportedException : 'Store' 型の定数値を作成できません。このコンテキストでは、プリミティブ型または列挙型のみがサポートされています。
次のサンプル プログラムを使用すると、この問題を簡単に再構築でき、AsExpandable()
`table.
呼び出しを削除するAsExpandable()
と、三角結合を実行すると予想される SQL が生成されます。
ただし、を含めるとAsExpandable()
、Entity Framework は、「定数を作成できません」というエラーで失敗する前に、ストア テーブル全体をメモリにプルします。
ExpandableQuery
式パーサー内で入れ子になったサブクエリを強制的にアンラップして評価するように LINQKit に強制する既知の回避策はありますか?