問題タブ [objectquery]
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.
linq-to-entities - ObjectQuery の実行方法
Linq to Entities は、IQueryable を実装する ObjectQuery を使用します。通常は IQueryable メソッドを使用してデータをフィルタリングしますが、今日は特別な LIKE ステートメントを作成する必要がありました。フレームワークはスマートであると考え続け、特別な LIKE ステートメントを null および無効にするチルダを使用して、ワイルドカード「%」を「エスケープ」します。そのため、調べてみると、ObjectQuery には Where メソッドのオーバーロードがあり、ObjectParameters と共に文字列を渡すことができることがわかりました。これを実行しましたが、IQueryable のように実行されません。アプリケーションを実行しても、このコードがヒットした後は何も起こりません。エラーもデータベースへのヒットもないため、作成したクエリが実際には実行されていないことがわかります。
この子犬を処刑するにはどうすればよいですか?
entity-framework - LINQをエンティティに使用するときにIQueryableとObjectQueryを返す
LINQを使用して、クエリIQueryable
が処理される前のタイプであると誘惑するときに読んでいますが、クエリが処理されると、クエリはではなく、になりIQueryable
ますObjectQuery
。
その場合、IQueryableを返すために私のレイヤー(リポジトリレイヤー)からメソッドを書くのは正しいですか?
キャストする必要がありますか?
なぜ返品したいのObjectQuery
ですか?
私はLINQからSQLのバックグラウンドに来ていますIQueryable
が、EFはこれを変えたようです。
どんな助けでも本当にありがたいです。
c# - OR句で区切られたWhereフィルターでObjectQueryを使用する方法
ObjectQueryビルダーを使用して生のSQLフィルターWHERE(...)または(...)を書き直す方法について誰かが答えてくれませんか?
Where()メソッドを使用しますが、代わりにORを使用したいのですが、ANDで区切られたwhere句が生成されます。QueryBilderで可能ですか?これを使用して「OR分離」フィルターを生成する方法を意味します。
ありがとう、Artem
sql - Entity Framework-LINQを使用せず、文字列のみを使用してテーブルを結合する方法は?
EntityFrameworkについて質問があります。これについての答えを知っているなら答えてください。私はそのような質問があります:
特に、1つのクエリでいくつかのテーブルを結合したいのですが、LINQを使用できず、クエリ内のDBフィールドにマップされたオブジェクトでObjectQueryを使用できません。各エンティティが動的に作成するためです。だからこれは私が使用できないものです:
msdn.microsoft.com/en-us/library/bb425822.aspx#linqtosql_topic12
msdn.microsoft.com/en-us/library/bb896339%28v=VS.90%29.aspx
問題は、オブジェクトを使用する代わりに、このようなものを使用できるかどうかです。
目的は、Whereメソッドのような構文でObjectQueryのJoinメソッドを使用することです。
msdn.microsoft.com/en-us/library/bb338811%28v=VS.90%29.aspx
ありがとう、Artem
c# - 1つのクエリで少数のGroupJoin
一貫性のあるGroupJoinをほとんど使用せずにObjectQueryを作成しようとしています。つまり、メインテーブルを1つ選択し、LEFTJOINを追加する必要があります。SelectManyメソッドを使用すると、フィールドRoleIDにアクセスできないため、次のように実行します。
すべてが機能していますが、何らかの方法でINNER JOINとして機能しています。私は、SelectManyメソッドがこの動作を引き起こすことに気付きました。このクエリを生成します:
私はそれを削除し、次のエラーが発生しました:
メソッド'System.Linq.Enumerable.SelectMany(System.Collections.Generic.IEnumerable、System.Func>、System.Func)'の型引数は、使用法から推測できません。タイプ引数を明示的に指定してみてください。
誰かが私にこの振る舞いを説明してくれませんか、そして可能であればそれを修正する方法をアドバイスしてください。
前もって感謝します。
c# - ObjectQueryでContainsを使用する
これが私の状況です:
am:n-アーティストとイベントの関係があります。私がやろうとしているのは、特定のアーティストを含むイベントのみを含むIQueryableを取得することです。データアクセス層にリポジトリを使用しています。明らかに、次のアプローチは機能しません。
私はEntityFrameworkを初めて使用するので、その理由はよくわかりませんが、推測できます。ですから、誰かがこれを非常に簡単な方法で説明できた場合、私も感謝します。とにかく、私が思いついた私の解決策は次のようになります:
すべてのイベントが取得および処理されるため、これはまったく良い解決策ではありません。これは大きなオーバーヘッドです。私の問題のより良い解決策を教えてくれる人はいますか?また、ObjectQueryとは何か、およびObjectQueryをIQueryableにキャストする方法(可能であれば)を実際には理解していなかったという事実も認識しています。
私はどんな提案にも感謝しています。
entity-framework-4 - Entity Frameworkクラスをシリアル化する際に循環参照を回避するにはどうすればよいですか
Entity Framework 4 を使用した MVC-3 (RC1) アプリケーションがあります。
コントローラー アクションから JSON オブジェクトを返したいと考えています。このオブジェクトは、明らかに参照を返す他のオブジェクトによって参照されます。
したがって、次の循環参照エラーが発生します。
「/」アプリケーションでサーバー エラーが発生しました。
タイプ 'Application.Models.ReferenceObject' のオブジェクトをシリアル化中に、循環参照が検出されました。
説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。
例外の詳細: System.InvalidOperationException: タイプ 'Application.Models.ReferenceObject' のオブジェクトをシリアル化中に循環参照が検出されました。
NB: Application & ReferenceObjectは明らかに実際の名前空間 / オブジェクトの代替です。
Stack Overflow: Circular reference exception when serializing LINQ to SQL classesによると、これは JSON.Net を使用して克服できます。ただし、これを回避し、代わりにシリアル化されるオブジェクトから問題のある参照プロパティを除外しようとします。
どういう意味ですか?
私はこのようなことをしたい:
where**<method>**
メソッドとは反対のことを行うObjectQuery(Of T).Include
メソッドでありObjectsReferencingThis
、循環参照の原因となっているプロパティです。
注意:これらのプロパティを削除したり、POCO を作成したりしたくはありません。これは Json のシリアル化にのみ影響するためです。
誰でも助けてください。
:)
.net - DBQueryを変換するにはどうすればよいですかObjectQueryに?
にDBQuery<T>
変換するがありますIQueryable<T>
(このビットは正常に機能します)。しかし、私はIQueryableをObjectQueryに変換しようとしています..失敗します:-
これは、Entity-Framework 4 CTP5 Magic Unicorn blahblahblahに切り替える前は機能していました。今、それは機能していません-すなわち。objectQuery
ですnull
。
さて、DBQuery<T> inherits IQueryable<T>
..だから私はこれがうまくいくはずだと思いました。
コードを..に変更した場合
次に、次の例外がスローされます:-
System.InvalidCastException:タイプ'System.Data.Entity.Infrastructure.DbQuery1
1[Tests.Models.Order]' to type 'System.Data.Objects.ObjectQuery
[Tests.Models.Order]'のオブジェクトをキャストできません。
助言がありますか?
wpf - WPF コントロールを LINQ to Entity クエリにバインドするための推奨されるパターンは何ですか?
MSDNでは、次の情報を読むことができます。
コントロールを ObjectQuery に直接バインドしないことをお勧めします。代わりに、コントロールを Execute メソッドの結果にバインドします。この方法でバインドすると、バインド中にクエリが複数回実行されるのを防ぐことができます。
と
LINQ クエリを使用する場合は、クエリの結果を ObjectQuery にキャストし、Execute メソッドを呼び出すことをお勧めします。
私の質問は次のとおりです: LINQ to Entity (最大で IQueryable) の結果を、より具体的な型である ObjectQuery にキャストするのは正しいですか??
コントロールを LINQ クエリの結果にバインドする必要がある場合に使用する正しいパターンですか?
Visual Studio 2010 の [データ ソース] ウィンドウから WPF フォームにデータ ソースをドラッグすると、MSDN で説明されているように 2 つのメソッドが生成されますが、アプリケーションでは "predefinedTokensQuery" 変数にフィルターを適用する必要があるため、 LINQ クエリ (生成された "predefinedTokensQuery" 変数の初期化を置き換える) を実行すると、コンパイラは LINQ クエリを ObjectQuery に明示的にキャストできないため、不平を言います。
次のコードは、私のアプリケーションで現在どのように機能しているかを示していますが、ここで何かを見落としていて、推奨されるパターンに従っていないのではないかと本当に心配しています。
ありがとうございます。フランク・アベル
linq - selectInsideSelectのObjectQueryラムダ式
ObjectQueryでラムダ式を使用してこのようなクエリを作成したい
使ってみます
しかし、それは機能していません。誰かが私を正しい方向に向けることができますか?
ありがとう