問題タブ [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# - DataServiceCollection: 既存の項目の削除を元に戻す
私は WCF Data Services、特に での変更追跡の実装を検討していDataServiceCollection
ます。
ブログとブログ エントリを管理するアプリケーションで元に戻すシナリオを考えてみましょう (各ブログには多くのブログ エントリがあります)。2 種類の元に戻す操作をテストしています。
- 新しいブログ エントリが追加されました (元に戻す操作はエントリを削除することです)。
- 既存のブログ エントリが削除されました (元に戻す操作はエントリを追加することです)。
コードサンプルは次のとおりです。
最初の元に戻す操作 (新しいエントリを追加し、元に戻すときに削除する) は正常に機能します。
2 番目の元に戻す操作 (既存のエントリを削除してから、元に戻す操作に追加する) は非対称に機能します。
この行:
Deleted
コンテキストの変更トラッカーのように対応するエンティティをマークします。これは正しいです。しかし、この行:
existingEntry
変更トラッカー (状態のまま)では何もしませんDeleted
が、もちろんアイテムをコレクションに追加します。
したがって、SaveChanges
が呼び出されると、このエントリはデータベースから削除されますが、クライアント側のコレクションには残ります。
コンストラクターでコールバックを設定して、この取り消しを手動で処理しようとしましたDataServiceCollection
が、ここでは同じ非対称動作collectionChangedCallback
が発生しDeleted
ます。
私は何を間違っていますか?
削除されたアイテムを「復元」する方法は?
wcf - WCF Data Service Change Tracking: 変更の保存をキャンセルして、オブジェクトの元の値に戻す方法
Entity Framework 4 データ モデルをラップする WCF データ サービスがあります。WCF Data Services Client ライブラリを使用して WPF クライアントをサービスに接続しています。
WCF Data Services で、追跡されたオブジェクトへの変更を元に戻したりキャンセルしたりすることはできますか?
シナリオ: UI で、ユーザーがオブジェクトを編集できるようにします。保存ボタンとキャンセルボタンがあります。ユーザーが保存することを選択した場合、WCF コンテキストで SaveChanges() を呼び出すと、WCF サービスを介して変更がデータベースに送信されます。ユーザーがキャンセルをクリックした場合、変更を元に戻し、現在のオブジェクトの元のプロパティ値に戻したいと思います。
WCF データ サービス クライアント ライブラリに変更追跡が組み込まれていることは知っていますが、この情報にアクセスする方法が見つかりません。
Entity Framework では、コンテキストは Refresh メソッドをサポートし、RefreshMode.StoreWins を指定してオブジェクトを渡すことができます。これにより、変更が効果的にキャンセル/元に戻されます。ここに文書化されています:http://msdn.microsoft.com/en-us/library/bb896255.aspx
クライアント アプリケーションの WCF DataServices で同じことを実現する方法について何か提案はありますか?
乾杯クリス
joomla - サードパーティのクリックタグを追加する方法
クライアントから、joomlaWebサイトに配置したページスキンデザインのインプレッションとクリックを追跡するための追跡コードが提供されました。グラフィックを表示しているモジュールにこのコードを追加しましたが、クライアントは追跡が行われていないことを報告します。コードにタイムスタンプタグが表示されていますが、これが実際にどのように機能するかはわかりません。
c# - オーバーライドされた SaveChanges メソッドで ChangeTracker を操作すると ArgumentException がスローされる
SaveChanges メソッドをオーバーライドして、EntityFramework の変更を監査しました。関連オブジェクトを更新しようとするまで、それはうまくいきます。関連オブジェクトを更新しようとすると、ArgumentException が発生します。ChangeTracker からエンティティを読み取った後、例外がスローされることがわかりました。オーバーライドされた SaveChanges メソッドで ChangeTracker を何もしなければ、オブジェクトは正常に更新されます。EntityFramework 5.0 を使用しています。
それがバグなのか、それとも私が何か間違ったことをしているのかわからないのですか?
スローされた例外:
System.ArgumentException がキャッチされました HResult=-2147024809
Message=EntityKey を定義するキーと値のペアを null または空にすることはできません。パラメータ名: レコード Source=System.Data.Entity
ParamName=record StackTrace: System.Data.EntityKey.GetKeyValues(EntitySet entitySet, IExtendedDataRecord record, String[]& keyNames, Object& singletonKeyValue, Object[]& compositeKeyValues) at System.Data System.Data.Objects.ObjectStateManager.PerformDelete(IList) の .EntityKey..ctor(EntitySet entitySet、IExtendedDataRecord レコード)1 entries) at System.Data.Objects.ObjectStateManager.DetectChanges() at System.Data.Objects.ObjectContext.DetectChanges() at System.Data.Entity.Internal.InternalContext.DetectChanges(Boolean force) at System.Data.Entity.Internal.InternalContext.GetStateEntries(Func
2 述語) System.Data.Entity.Internal.InternalContext.GetStateEntries() で System.Data.Entity.Infrastructure.DbChangeTracker.Entries() で System.Data.Entity.DbContext.GetValidationErrors() で System.Data.Entity. c:\Projects\EF22\EFTest2Solution の EFTest2.BlogContext.SaveChanges() で System.Data.Entity.DbContext.SaveChanges() で System.Data.Entity.Internal.LazyInternalContext.SaveChanges() で Internal.InternalContext.SaveChanges() \EFTest2\Context.cs: EFTest2.Program.Main(String[] args) の 37 行目 c:\Projects\EF22\EFTest2Solution\EFTest2\Program.cs: 42 行目
私のコードは次のようになります: Program.cs
モデル
環境:
構成
entity-framework - 複数の DbContext インスタンスを使用した EF5 の変更通知 - 文書化されていますか?
私は、EF5 を ORM として使用するアプリケーションに取り組んでいます。
開始する前に、EF5 のすべてが正常に機能していることを確認するためのテストを作成する必要がありました。私がテストしたことの 1 つは、UnitOfWork のサポートでした。DbContext の複数のインスタンスを作成することで、複数の作業単位をシミュレートしました (IOC で DbContext の有効期間が PerWebRequest に設定されている場合の複数の要求など)。
SqlDependencyのようなものを使用しているように見えるため、EF5 として驚きに遭遇しました。
ドキュメントを見つけようとしていますが、EF プロジェクトのページやブログも Google も役に立ちません。これは、他のコンテキストに通知するためのすぐに使用できる機能がなかった古いバージョンの EF の動作方法ではありません (つまり、この質問を参照してください)。これが実装されていればいいのですが、実装されていることを示すドキュメントが必要です。この機能に頼ることができないのではないかと心配しており、他の作業単位が完了した場合にコンテキスト内のデータが変更されないことを知っていることに頼ることができないからです。 、ここで明らかにそうです。
sql - 個々の列を無視しながら変更追跡を使用する
現在、SQL Server 2008変更追跡を使用して、すべてのテーブルへの変更を追跡しています。すべてが箱から出して問題なく動作します。ただし、さらに複雑なのは、これらの変更を読み取るアプリケーションが、追跡されている各テーブルの日付列に変更を加える必要があることです。アプリケーションの変更は、追加のデータを送信する必要があることを通知するトリガーのようなものです。これは、管理されていない場合、無限のサイクルを引き起こす可能性があります。
各変更が読み取られた後に入力される送信日があります。
データベース/テーブルレベルで、テーブルの個々の列を無視して、その列が変更されたときにバージョン/変更が追跡されないように構成できますか?
entity-framework - プロキシベースの変更追跡、POCO オブジェクトでプロパティが更新されない
ASP.NET MVC アプリケーションで、プロキシベースの変更追跡で EF5 コード ファーストを使用しています。ドメイン クラスの 1 つに、頻繁に更新される数値プロパティが含まれています。このため、このプロパティはフレームワークを使用してデータベースに保持されません。
私が直面している問題は、プロパティの値がセッション間で更新されないことです。私の API コントローラーは、次のように、内部ロジックに従って、上記の値を増加または減少させます。
また
ここで、myObj は、各セッションで LINQ を介してコンテキストから取得されたプロキシ オブジェクトです。
増減後に myObj.CurrentSessions の値を調べると、確かに更新されますが、次のサーバー要求で myObj が再度取得されると、CurrentSessions の初期値は常にゼロになります。
コンテキスト全体の変更をスキャンせずに、POCO エンティティでプロパティ値が更新されていることを確認するにはどうすればよいですか?
java - Apache Commons 構成による変更の追跡
今後のプロジェクトでは、Apache Commons Configuration を使用する予定です。
特定のアプリケーションのすべての構成をデータベースとの間で読み書きするためにライブラリを使用したいと考えています。
すべての構成変更を追跡する (または構成をバージョン管理する) 必要があります。この変更追跡もデータベースに格納する必要があります。
構成の変更は頻繁には発生しません。
この変更追跡機能を実装するための最良のアプローチは何でしょうか? Apache Commons 自体に何らかのサポートはありますか? 別の適切なフレームワーク/ライブラリはありますか?
sql-server - 主キーのないテーブルを使用した SQL Server の変更追跡/変更データ キャプチャ?
データベース内の 1 つのテーブルの変更を監視し、それらを別のデータベース内のテーブルに複製する必要があります。何らかの理由で、元のデータベースの構造を変更できないため、トリガーを使用したり、制約を作成したりできません。変更追跡は、必要なものに対する理想的なソリューションのように見えましたが、一部のテーブルには主キーがありません定義されているため、使用できません。変更データ キャプチャについては、こちら - http://msdn.microsoft.com/en-us/library/bb522511.aspxに次のように書かれています。
.
「ネット トラッキングを有効にするには、ソース テーブルに主キーまたは一意のインデックスが必要です。」
基本的に、同様の問題があるようです。
このような状況の回避策はありますか? それとも、何かが足りないのでしょうか?
change-tracking - TFS2012で変更の追跡を実現する
サーバーにTFS2012をインストールしましたが、変更の追跡を行う必要があります。詳細については、以下で説明します。
変更追跡の全体的な考え方は、PBI /要件を変更した場合、リンクされているすべての作業項目/バグ/障害のステータスを変更するか、TFSが何らかの方法で通知する必要があるということです。