問題タブ [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.

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

logging - ObjectStateEntry の状態の奇妙な動作

次の拡張メソッドがありますが、1 つのエントリを呼び出した後、各エントリの状態が Unchanged に変更される理由がわかりませんentry.AcceptChanges()

私は何か間違ったことをしていますか?

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

asp.net - linq to sql および ef を使用してナビゲーション プロパティをクエリする方法

linq to sql を使用して 3 つの ef オブジェクトのクエリを強く入力しようとしています。製品とカテゴリには 1 対多の関係があります。私のクラスにはナビゲーション プロパティが含まれており、次のようになります。

文字列ベースの .Include() を回避しようとすると、ProductID "1" に等しいグループを返すだけでなく、製品とカテゴリの名前も含むクエリを作成するにはどうすればよいですか?

何かのようなもの:

私はおそらく森の中の木を見逃していますが、ObjectContext.LoadProperty の構文を取得できないようです (それが正しい方法である場合)。

何かご意見は?ありがとう。

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

entity-framework - エンティティ フレームワークが常にデータベースから読み取ることを確認しますか?

このアプリケーションは、実際には Web アプリケーションとコンソール アプリケーションの 2 つのアプリケーションです。コンソール アプリケーションは、Windows マシンでスケジュールされたタスクとして使用され、1 日に 3 回実行され、いくつかの定期的な作業が行われます。どちらのアプリケーションも、別のプロジェクト (クラス ライブラリ) に配置されている同じモデルとリポジトリを使用します。問題は、コンソール アプリケーションがデータベースにいくつかの変更を加える必要がある場合、モデル エンティティを更新して変更をデータベースに保存することですが、これが発生した場合、webbapplication のコンテキストはこれを認識しないため、オブジェクト コンテキストは更新されません。新しい/更新されたデータとアプリケーションのユーザーは変更を見ることができません。

私の質問は次のとおりです。オブジェクトコンテキストに、ホールオブジェクトコンテキストまたは特定のクエリのいずれかで、常にデータベースからデータをロードするように指示する方法はありますか?

/よろしくヴィンブラッド

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

entity-framework - EF 4: POCO を使用する場合の DetectChanges の理解の問題 (自己追跡 ObjectContext なし)

誰かが私を助けることができるのだろうか?

POCO (非プロキシ) エンティティで DetectChanges を発行する必要がある理由を理解するのに問題があります。

もちろん、プロキシが返されないようにするためにこの行があります。

そして、いくつかの調査を行うと、オブジェクトの「状態」を確認する必要がある場合は、detechChanges を発行する必要があるように見えますが、なぜオブジェクトの状態を確認する必要があるのでしょうか?

基本的に、データを新しい ObjectContext に保存するメソッドに POCO エンティティを送信します (各メソッドで ObjectContext を作成および破棄します)。

したがって、なぜ ObjectContext を追跡したり、変更を認識したりする必要があるのか​​ を理解するのに問題がありますか?

気づかないと救われないからでしょうか。

たぶん私は知らされていませんが、既存のObjectContextを使用している場合(私は毎回作成および破棄していません)、ObjectContextが確実に認識されるようにすることは有益ですが、そうでない場合はそうではありませんか?

したがって、1 つのメソッドでは、新しい datacontext を作成してオブジェクトを更新し、それを db に保存して ObjectContext を破棄しています。したがって、私は2つの方法を使用していません.1つの方法で更新または新しいレコードを送信し、次に別の方法で保存します。

なぜそれが必要なのか、簡単な説明をいただければ幸いです。

前もって感謝します

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

nhibernate - EntityFramework によって生成されるすべてのクエリの前に SQL ストアド プロシージャを実行する

ObjectContext をクエリする前に、毎回 SQL ストアド プロシージャを実行する必要があります。私が達成したいのは、CONTEXT_INFO後でほとんどのクエリで使用される値に設定することです。

誰かがそれをしましたか?それは可能ですか?

[編集]

現在、接続を開き、次のように ObjectContext コンストラクターでストアド プロシージャを実行することで、これを実現しています。

次に、統合テストで:

ただし、これには接続を開いたままにしておく必要があります。常に CONTEXT_INFO が必要になるため、これはエラーが発生しやすく、別の開発者が簡単に実行できる可能性があります。

上記は、私がテストのようにコードを書くことができ、すべてが緑色であることを意味します (YAY!) が、同僚がビジネスロジックのどこかで TestMethod2 のコードを使用し、すべてがうまくいかない - そして誰もどこで、なぜそれ以来すべてのテストは緑色です:/

[編集2]

このブログ投稿は確かに私の質問には答えませんが、実際に私の問題を解決します. 私の目的には、NHibernate を使用する方が適しているかもしれません :)

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

asp.net - 複数の Entity Framework モデルと objectcontext

Entity Framework を使用する asp.net Web アプリケーションがあります。アプリケーション データ層は、ここにある Jordan Van Gogh によって概説された方法を使用します。 簡単に言うと、このメソッドは、http 要求ごとに 1 つの共有 objectcontext インスタンスを使用し、IHttpModule を継承する AspNetObjectContextDisposalModule を使用して破棄されます。

別のプロジェクト、いくつかの追加のテーブルを追加し、上記の例を (正確に) アプリケーションにコピーするデータ レイヤーをセットアップしました。この追加プロジェクトとそれに続くさまざまなデータ モデルはすべて完全に機能します。一見何の影響もなく、2 つのデータ レイヤーを使用してさまざまな操作を実行できます。もちろん、2 つのデータ レイヤーは異なるテーブルを表すため、オブジェクトセットは異なります。

私の質問はこれです:

このアプローチは良い考えですか?バックグラウンドで行われていることのほとんどを把握していますが、これらのモデルはどちらも System.Data.Objects.ObjectContext を使用しています。ユーザー A が最初のデータ レイヤーを使用して操作を実行し、同時にユーザー B が 2 番目のデータ レイヤーを使用して操作を実行した場合、「共有」オブジェクト コンテキストで問題が発生しますか?

ありがとう。そして優しく。

編集 注:別のocキーを使用しています

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

asp.net - EF4-savechangesなしでobjectcontextにオブジェクトを追加します

Order-Orderlinesのようなページがあります。Orderは、いくつかのテキストボックスとddlsで表され、Order行はGridViewで表されます。

データベースに変更を保存せずに、ユーザーが注文明細を追加できるようにしたい。例:彼は4つの注文明細を追加し、注文情報を入力してから[保存]ボタンを押します。その瞬間だけ、すべての情報をDBに保存する必要があります。

私が次のようなコードを使用するとき

新しく作成されたOrderLineがオブジェクトコンテキストに表示されないため、それにアクセスしてGridViewを新しいOrderListコレクションにバインドできません。

どうすればこの問題を解決できますか?または、このタスクを実行する別の方法がありますか?

ありがとう。

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

entity-framework-4 - レイヤー間でEntityオブジェクトを渡す正しい方法は?

私はちょうど Entity Framework を学んでおり、それを私の階層化されたコード構造に組み込むことについて、ある程度の進歩を遂げました。ビジネス レイヤーとデータ アクセス レイヤーの 2 つのビジュアル レイヤーがあります。

私の問題は、レイヤー間でエンティティ オブジェクトを渡すことです。このコード サンプルは機能しません。

エラー メッセージが表示されます。 ObjectContext インスタンスが破棄されたため、接続が必要な操作には使用できなくなりました。

GetActiveUsers メソッドからusingを削除すると、正常に動作します。

GC はいつでもコンテキストを破棄し、BLL を台無しにする可能性があるため、これは危険な行為であることはわかっています。

では、レイヤー間で情報を渡す正しい方法は何ですか? コンテキストも渡す必要がありますか?

0 投票する
6 に答える
1078 参照

asp.net-mvc - 一体何がコンテキストですか?

どこを見てもコンテキストが見え始めています。ASP.NET MVCには、ControllerContexts、RequestContexts、HttpContexts、FormContextsがあります。Entity Frameworkには、ObjectContextsとDbContextsがあります。NinjectにはNinject.Activation.IContextがあります。

一体何がコンテキストですか?

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

c# - Entity Framework のオブジェクト コンテキストにオブジェクト ツリーをアタッチする

Foo、Bar、Foob の 3 つのタイプの EDM があります。Foob は Foo のサブクラスです。Foo には Bar エンティティのコレクションがあります。Bar には Foo エンティティのコレクションがあります。Bar および関連する Foob オブジェクトと共に、新しい Foo オブジェクトをコレクションに追加したいと考えています。次のコードが機能するように:

ただし、上記のコードでは、以下の例外が発生します。

System.Data.SqlClient.SqlException: 一意のインデックスを持つオブジェクト 'dbo.tblFoo' に重複するキー行を挿入できません。