問題タブ [change-tracking]
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# - EF 4.1 RCのDbContextレベルで変更追跡をオフにするにはどうすればよいですか?
一般的な問題と思われる問題が発生しました。データベースの値を更新していますが、EFはオブジェクトの元のメモリ内コピーを使用しており、これらの変更された値は表示されたデータに反映されません。これがなぜなのかは理解できますが、それを回避する方法がわかりません。
最も一般的な解決策は、MergeOptions.NoTracking
変更の追跡を完全にオフにし(またはAsNoTracking()
クエリ時に拡張メソッドを使用し)、オブジェクトにアクセスするたびに強制的に更新するように設定することです。これは私の目的には問題ありません。
他のリポジトリから継承する汎用ベースリポジトリがあります。
そしてDbContext
このように:
All()
したがって、リポジトリのメソッドを変更すると、次のようになります。
希望する結果が得られました。製品を表示しているページが更新されると、データベースの更新が反映されます。Get()
ただし、この拡張メソッドはでのみ機能するため、メソッドでこれを行うことはできませんIQueryable
。
変更の追跡は必要ないので、理想的にはこれをレベルでオフにしたいのDbContext
ですが、これを行うための明確な方法はないようであり、主題に関するドキュメントはほとんどありません(誰かが指摘できない限り)私を誰かに?お願いします!)
DbContext
これらの構成オプションを無効にして、コンストラクターをに追加してみました。
しかし、私は彼らが実際に何をしているのかを推測しているだけであり(私はソースコードを見てそれらを見つけただけです)、とにかく効果がないようです。
どんな助けでも大歓迎です。より多くの情報/コードが役立つ場合は、私に知らせてください。
self-tracking-entities - STE を使用して子オブジェクトで ChangeTracking を有効にする
STE を使用しており、オブジェクトとその子の変更追跡を有効にしたいと考えています。私が今しなければならないことは、このようなことです。
私が探しているのは、子オブジェクトの変更追跡も自動的に有効にする方法です。それぞれをループして、変更の追跡を開始するように明示的に指示する必要はありません。
洞察をお寄せいただきありがとうございます。
entity-framework - Entity Frameworkで主キーを仮想として定義する
エンティティ フレームワークで主キー属性を仮想として定義する利点は何ですか?
AFAIKvirtual
は、ナビゲーション プロパティの遅延読み込みと、他のプロパティの変更追跡に使用されます。ただし、主キーには前述の機能は必要ありません。
では、主キーを仮想的に定義することは役に立ちますか?
wpf - ナビゲーション プロパティを含む SelfTracking エンティティの実際の状態を取得する
オブジェクトに変更が保存されていない場合、オブジェクトの表示を変更したいと考えています。そのまま使えると思っChangeTracker.State
ていたのですが、Navigation Property を変更しても Modified に変わりません。
たとえば、連絡先オブジェクトには、電話、住所、および電子メールのナビゲーション プロパティが含まれています。連絡先の名前を変更すると、状態は Modified に変わりますが、電話番号を変更すると、オブジェクトの状態は Unchanged のままになります。
c# - Entity Framework のプッシュ ベースの変更追跡
Entity Framework は、ある日付 x の後に追加されたデータベース内のレコードと、ある日付 x の前に追加されたレコードを検出するという点で、何らかの種類の変更追跡を本質的にサポートしていますか? エンティティ自体のプロパティの変更の追跡をサポートしていることは知っていますが、これは少し違うと思います。
Entity Framework にない場合、これを実現するための簡単な方法として何が推奨されるのか疑問に思っています。
シナリオは、自動プッシュベースのデータ転送が毎時間発生し、プッシュが開始されるたびに、サーバーは最後のプッシュ以降に追加されたレコードを認識し、それらをプッシュする必要があるというものです。
これに対する標準的で信頼できるアプローチを知っている人はいますか? 私は独自のソリューション (主キー、DateTime 列などを監視) を作成しましたが、車輪を再発明したくありません。
entity-framework - Entity Framework 4:親を保存するときに子オブジェクトの元の値を取得するにはどうすればよいですか?
これに関連するSEに関する投稿をたくさん見ましたが、満足のいく質問に答えたものはありません。(実際のコード例で)これに答える投稿がある場合は、その方向に私を向けてください。
オブジェクトを保存するときに、ログに情報を書き込む必要があります。元の値と新しい値を知る必要があります。これは親オブジェクトにとって非常に簡単であり、変更された子オブジェクトの新しい値を取得することもかなり簡単です。課題は、子オブジェクトの元の値を取得することです。
たとえば、ユーザーはドロップダウンリストを介して子オブジェクトを変更します。これにより、親の外部キーの値が変更されます。保存するときは、外部キーの値ではなく、変更されたエンティティのテキストによる説明(ToString()値またはその他の値)をログに書き込む必要があります。
ObjectStateEntryには親の現在の値と元の値が含まれていますが、変更された子オブジェクトの現在の値と元の値を取得するにはどうすればよいですか?
これは可能であるはずのことのようですが、達成するのが非常に難しいか、Microsoftの設計チームによって見落とされています。
助けてくれてありがとう。
mysql - MySQL - DB 内の *データ* の追跡を変更しますか?
MySQL データベースのデータに対するすべての変更を追跡する必要がある状況があります。
たとえば、「customers」テーブルには、その顧客との取引の危険性を示す評価が含まれるフィールドがあります。このフィールドが変更されるたびに、ログに記録する必要があります。これにより、たとえば、「以前は 3 でしたが、現在は 8 です」と言うことができます。MySQL でこれを処理する自動化された方法はありますか?それとも、大量の変更追跡ロジックをアプリケーション自体に書き込む必要があるのでしょうか?
git - ファイルを削除したことをgitに通知する必要があるのはなぜですか?
保存されたzipファイルからgitへの開発の歴史的記録を構築しています。git add .
選択したファイルがコミットされるように、ステージング領域にファイルする必要があることに満足しています。ここまでは順調ですね。
ただし、現在、最初の(解凍された)ファイルセットを追加し、コミットしてから、ディレクトリとコンテンツを削除してから、次のセットを解凍し、追加してコミットするという状況にあります。多くの場合、さまざまなディレクトリ名が使用されます。
私の理解の問題は、いくつかのコミットを削除したディレクトリ/ファイルの(Git Gui)を示す「ステージングされていない変更」が表示されることです。gitが現在のファイルのスナップショットを取得することを理解したので、そこに削除されたファイルが含まれていてはなりません。
それで、私の最近のコミットには、それらの削除されたファイルのコピーが(ツリーに)含まれていますか?プレーン(または同等git rm
のWindows)の代わりに使用する必要があるのはいつ/なぜですか?rm
メッセージを無視する必要がありますか?つまり、gitが競合する削除と追跡のメカニズムをどのように処理するかについての説明はありますか?
entity-framework - WCF、Entity Framework 4.1、およびエンティティの状態
WCFサービスを公開するアプリケーションを開発しています。DALでEntityFramework4.1を使用しています。問題は、エンティティをロードするときです(たとえば、Orderを持っている顧客がOrderDetailを持っているとします)。ロードした後、Customer、Order、およびOrderDetailオブジェクトにいくつかの変更を加え(いくつかの新しい注文が追加され、いくつかの既存の注文が削除/更新されます)、オブジェクトグラフをWCFサービスに送信して次のように更新します。
サーバー側で更新された顧客のObjectGraphを受け取ったとき、現在変更追跡がないため、どの注文が削除され、どの注文が変更されたかわかりません。どの順序を削除し、どの順序を変更するかをどのように判断できますか?Entity Framework 4.1でオブジェクトグラフの変更を追跡する方法はありますか?
注:以前は、この問題を解決するセルフトラッキングエンティティを使用していましたが、WCFサービスがJavaクライアントアプリでも使用されるため、STEを削除する必要がありました。したがって、STEは私にとってオプションではありません。