問題タブ [objectcontext]
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.
entity-framework-4 - DI ツール unity を使用して EF ObjectContext オブジェクトを作成する
以下のスクリプトを使用してコンテナにタイプを登録しようとしましたが、うまく機能します
ただし、xml構成を使用しようとすると:
それは動作しません。エラーメッセージは次のとおりです。
説明:
例外の詳細:
スタック トレースは次のとおりです。
誰かがいくつかの提案をすることができますか? どうもありがとう
c# - ObjectContext が矛盾した状態にある可能性があります
EntityFramework 4.0 でリレーションを作成中にエラーが発生しました
データベースへの変更は正常にコミットされましたが、オブジェクト コンテキストの更新中にエラーが発生しました。ObjectContext が矛盾した状態にある可能性があります。内部例外メッセージ: リレーションシップ 'CodeFirstNamespace.EventsIndex_Module' のメタデータ情報を取得できませんでした。マッピング属性が使用されている場合は、リレーションシップの EdmRelationshipAttribute がアセンブリで定義されていることを確認してください。規則ベースのマッピングを使用する場合、切り離されたエンティティ間の関係のメタデータ情報を特定できません。パラメータ名: relationshipName
c# - C#Entity Framework4のナビゲーションプロパティにより、コミット時のパフォーマンスが低下します
この質問の詳細が不足していることをお詫びします。最初に助けが必要なのは、詳細を見つけるためにどこを見ればよいかを知ることです。
enityフレームワーク4のナビゲーションプロパティに問題があり、変更をコミットするときにパフォーマンスが低下するようです。
ナビゲーションプロパティの1つ(領収書テーブル)に約8000行が含まれている場合(これは多くないので問題ないはずです)、30秒以上かかります。
SQLプロファイラーを使用しましたが、EFがレシートからselect *を発行し、非常に遅いことがわかります。
現時点では、ObjectContext.SaveChanges()が呼び出されたときに、このテーブルからすべての行を選択する必要が ある理由すらわかりません。
このテーブルに1行を挿入する必要がありますが、それは最初にすべてを選択する理由を説明していません-また、その選択に時間がかかる理由も説明していません(同じクエリがクエリマネージャーで1秒未満かかる)
ですから、今の私の質問は、問題がまだ何であるか正確にはわかりませんが、次のとおりです。
- 問題の詳細はどこで/どのように確認できますか?ObjectContext.SaveChanges()にデバッグできないため、その内部で何が起こっているのかわかりません。
- EFが領収書から*を選択しようとするのはなぜですか?
- なんでこんなに遅いの?クエリマネージャにコピーおよび貼り付けされたまったく同じクエリはほぼ瞬時に実行されます
編集:
このメソッドの呼び出しをコメントアウトすることで、遅いのはレシートコードであることを確認しました。
しかし、なぜこれがEFにそのselect*クエリを発行させるのかはまだわかりません。
によって引き起こされる遅延読み込みの問題である可能性があると思いますinvoice.Receipts.Add(receipt)
。その行の前にinvoice.Receiptsが空であり、.AddをReceiptsに追加するには、最初にコレクションをロードする必要があるためです。ただし、invoiceIdで選択する必要があるのに、warehouseId=1で選択する理由は説明されていません。
編集2:
このメソッドのEFコードを直接SQLコマンドに置き換えることで、問題を「修正」しました。これは素晴らしいアイデアではありません。他の点では完全に優れたORMを使用しているときに、SQLをスローするべきではありません。しかし、今のところ、EFがselect*クエリを実行していた理由がまだわかりません
c# - エンティティ オブジェクトから ObjectContext 参照を取得する最速の方法は何ですか?
「方法: 生成されたデータ オブジェクトをカスタマイズする」で説明されているように、EntityFramework オブジェクトの拡張機能を作成していますが、これらの拡張機能の一部では、インスタンスの ObjectContext を取得して、モデル内の他の値を検索する必要があります。Tip 24 – How to get the ObjectContext from an Entity を見つけましたが、これは数年前に書かれたもので、この同様の SO の質問で参照されていますが、より良い答えがあることを本当に望んでいます。
確かにこれは、エンティティ自体からのエンティティのオブジェクト コンテキストの取得を公式の方法でサポートする必要があるほど頻繁に必要とされるものに違いありません。
この実装に関する最新情報をお寄せいただきありがとうございます。
c# - ObjectContextEF4.0を渡す
QueriesとContactRepositoryの2つのクラスがあります。
CreateContactAddress()を呼び出すと、SaveChanges()メソッドがクラッシュして次のエラーが発生します。
依存操作の有効な順序を判別できません。依存関係は、外部キーの制約、モデル要件、またはストアで生成された値が原因で存在する可能性があります。
LINQクエリをCreateContactAddress()メソッド自体に移動でき、すべてが完全に機能します。誰かが何が起こっているのか説明できますか?
entity-framework - Entity Framework とリポジトリ、オープン コンテキストをコントローラーに渡しても安全ですか?
基本的に、EF モデルへのアクセスを制御するリポジトリがあります。参照を作成し、アクセスされているリポジトリに応じて、要求されたエンティティを返します。現在、ライブ ObjectContext からエンティティを直接返す IQueryable Get メソッドを公開しています。ObjectContext の使用を using ステートメント内にラップして、適切に破棄されるようにすることをお勧めしますが、リポジトリからこれを行うと、コントローラーがロードするまでに ObjectContext が既に破棄されているというエラーが表示されます。using を削除したところ、問題なく動作しましたが、通常はどのようにアプローチすればよいか知りたいです。さまざまなコマンドを実行する必要がある可能性があるため、IQueryable の戻り値を維持したいと考えています。助言がありますか?複数の HTTP 要求が着信し始めた場合、EF は開いている接続にヒットするのを防ぐのに役立ちますか?
エラー出力:
動作しますが、夜は眠れません:
現時点で私のコントローラーが行っているのはこれだけです:
service - サービスコンテキストとオブジェクトコンテキストの違いは何ですか?
サービスコンテキストとオブジェクトコンテキストの違いを理解するのに問題があります。
つまり、どこで使われているのですか?基本的な違いは何ですか?
entity-framework - ジェネリック ObjectContext? objectContext.GetObjectSet?
ObjectQuery<T>
指定されたジェネリック型を取得する方法はありますか?
擬似:
java - javaのRococoa経由でアクセスされたobject-cを使用してMacOSXに現在ログインしているユーザーを取得するのに助けが必要です
私はMacOSXを初めて使用し、仕事で作業しているイントラネット認証アプリのログインユーザーを取得したいと考えていました。Rococoaと、Rococoaを使用してネイティブのobject-cメソッドとプロパティにアクセスする方法について読みました。これに関する初心者向けのチュートリアルやユーザーガイドはありますか?助けてください。
multithreading - EntityFrameworkを使用するマルチスレッドサブクエリはエラーをスローします
データベースクエリに関して、コードのパフォーマンスを更新しようとしています。私が現在直面している問題は、各サブクエリの新しいコンテキストを取得する方法を見つけることができないように見えることです。
以下の簡略化されたコードを使用すると、「基になるプロバイダーがOpenで失敗しました」という一貫性のない生成が発生します。
これまでのところ、これを回避する唯一の方法は、新しいコンテキストを使用して各subQueryのクエリ全体を再構築することであるようです。新しいコンテキストを使用して各クエリを下から上に構築することを回避する方法はありますか?代わりに、各サブクエリクエリを新しいコンテキストにアタッチすることはできますか?以下のようなものを探しています。