問題タブ [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.
version-control - データ処理用の手動「バージョントラッカー」
ソースファイルからいくつかの出力にデータを処理するデータベースシステムがあります。
この「プロセス」は、社内の多くの人々によって継続的に更新、強化、整理され、もちろん実行されています。
誰が、いつ、なぜ変更したかを追跡するには、バグトラッカーのようなものが必要ですが、完全ではありません。手動で更新されるバージョントラッカーに似ています。CHANGES ファイルのようなものですが、Web ベース、検索可能、マルチユーザーなど、より拡張されたものです。Mantis などのバグトラッカーはバグ駆動型であるため使用できないと考えました。分類されます。バグがあるかどうかに関係なく、変更を常にログに記録したいだけです。
どのソフトウェアを試すことができるか教えてもらえますか?
c# - Entity Frameworkは、エンティティを再接続するときにコレクションの変更を追跡しません
最近、MVVMWPFアプリケーションで多くのEntityFrameworkを使用していますが、いくつかの問題が発生しました。データを表示するために、私のビューモデルは短命のObjectContextを使用しています。これらのビューモデルは長時間実行されるプロセスで使用されるため、パフォーマンスを低下させないために、短命のObjectContextを使用することを選択しました。
つまり、基本的には、エンティティが切断モードで消費されていることを意味します。これらのエンティティは、作成、表示、更新、および削除できます。切断モードを使用して変更をデータベースに保存することに問題はありませんでした。SaveChanges()
しかし、メソッドの呼び出し時にエラーが表示されずに変更が保存されない特定のケースを見つけました。これは、コレクションプロパティを持つエンティティを更新しようとすると発生します。エンティティのスカラープロパティは問題なく保持されますが、コレクションの変更は、再接続時にこれらの変更を追跡できなかった場合のように、データベースに反映されません。
これは、エンティティ名を変更してから、そのレポートコレクションにオブジェクトを追加する私の場合のサンプルコードです。の後SaveChanges()
、クライアント名のみがデータベースに反映されます。
それで、私は何か間違ったことをしているのですか、それともEFはエンティティを再接続するときにこの種の変更を追跡できないのですか?
excel - Excel を手入力用の有力なリレーショナル データ ソースにするにはどうすればよいですか?
私は Excel を使用して、手動で入力されるデータのリレーショナル データベースとしてデータを保存しています (ここで私の他の質問を参照してください: https://stackoverflow.com/questions/9416263/possible-solutions-for-simple-data-persistence -and-manual-entry )
ただし、これまでの私の最大の問題は、RELATIONSHIPS を簡単にすることです (手動入力の観点から)。今のところ、増分 ID を使用して他のテーブルを参照していますが、このような外部キーを見ると、ユーザーはオブジェクト #42 が何であるかを知らず、別のテーブルで #42 を探す必要があります。それが何であるかを知るために。
例を挙げましょう。2 つのテーブルと、CitiesとCountriesの間に 1 対多の関係があるとします。
問題は、アーティシャル ID キーを使用して関係を作成することですが、意味がなく、都市を追加するときに、他のタブで参照されている国の ID を確認する必要があります。
他のテーブルのデータを使用する動的コンボ ボックスを使用して国を選択する方法はありますか? もしそうなら、それは国名を表示することができますが、IDを入力してください(それが関係が作られているためです).
主キーを国名に変更し、必要に応じて ID フィールドを削除する必要がありますか? 一部のテーブルは多対多の関係の結果であり、複数の外部キーによって定義されているため、結合された外部キーまたは人工 ID 以外に一意の値はありません。
私が Excel の初心者であることを認めなければなりません。
sql-server-2008 - 単一のクエリで変更追跡を使用して、SQL Server データベースからすべての変更を取得するにはどうすればよいですか (または、データベースとのおしゃべりを避けます)。
変更追跡を使用して、SQL Server 2008 の単一のテーブルに変更を加えることができることはわかっています。ただし、データベース全体のすべての変更を 1 回のクエリでクエリするための適切な方法を見つけることができませんでした。
これは可能ですか?
動的 SQL を作成し、これを実行するために exec を使用することについてどう思いますか? あなたが私に指摘できるこの例はありますか?
SQL Server 2008 で特定の列/行データの変更を監視する代わりに、トリガーを作成して維持するよりも労力がかからない方法はありますか? DB には 1500 を超えるテーブルがあり、これはオプションではありません。
ありがとう
java - オブジェクト変更追跡/バージョン管理 Java API はありますか?
私は、実行時に「オブジェクト モデル」を変更して、トランザクションを透過的に実行できるようにするバイトコード エンハンサーを少なくとも 2 つ知っています。そのうちの 1 つは、私が毎日仕事で使用している Versant VOD の一部であり、もう 1 つは Terracotta の一部です。たとえばORMなど、他にもかなりの数があると思いますが、私の会社ではVersantがそれを処理しています。
私の質問は、設計された製品とは関係なく、それ自体で使用できるオープンソース API はありますか? 「ハッキング可能な」API と言えます。コードを大幅に遅くする読み取りアクセスではなく、変更のみを追跡する必要があります。言い換えれば、明示的な読み取り/書き込みロックを必要とすべきではありません。これには、データ モデルだけでなく、変更を実行するすべてのクラスへのアクセスが必要になるか、比較を行うためにメモリ内に何らかの形式の「前のバージョン」を保持する必要があります。
私が解決しようとしている問題は、(NoSQL) DB で「シリアル化」された「大きな」(32K から 256K) オブジェクト グラフがあることです。それらは長寿命であり、変更の「履歴」を保持するために定期的に再シリアル化する必要があります。ただし、シリアル化にはかなりのコストがかかり、ほとんどの変更はマイナーです。
毎回それらを完全にシリアライズし、ストリームでバイナリ差分を実行することはできましたが、CPU を非常に集中的に使用しているように思えます。より良い解決策は、モデルの書き込み操作を変更して変更をプロトコル化する API です。これにより、最初の「イメージ」が保存された後、プロトコルのみを保存する必要があります。
オブジェクトを比較するために Apache Commons Beanutils について話している質問をいくつか見つけましたが、それはインプレース変更には役に立ちません。すべての「ビジネス トランザクション」の間にモデルの完全なクローンを作成する必要があります。
繰り返しますが、私は同じ JVM 内で、外部サーバー アプリケーションを一切使用しない「インメモリ」API を探しています。ネイティブ コードを含む API は、Win、Mac、Linux で使用できる場合は問題ありません。API は現在、個別にパッケージ化する必要はありません。「親プロジェクト」からそれを抽出して、独立した API を形成できる必要があります (親プロジェクトのライセンスでこれが許可されている必要があります)。
オブジェクト グラフには多くの大きな配列が含まれるため、効率的にサポートする必要があります。
変更は、監査のためだけではなく、再生または元に戻すことができるようにするために必要です。より正確には、デシリアライズされた初期グラフと変更のリストを使用して、同一の最終グラフに到達する必要があります。また、終了グラフから始めて、変更を逆に適用することで最初のグラフに戻ることができるはずです。これはまったく同じ機能を使用しますが、変更プロトコルが新しい値に加えて古い値を保持する必要があります。
API ライセンスは、商用利用と互換性がある必要があります。
[編集] これまでのところ、有用な回答が得られていません。私が望むものが存在するようには見えません。残された選択肢は 1 つだけです。それを実現することです。これは私のプロジェクトの次のステップであり、それなしでは先に進むことができないため、実装が機能するようになったら、ここにリンクを回答として投稿します。
[編集] このやや関連する質問を偶然見つけました: Is there a Java library that can "diff" two Objects?
wpf - 最初にコードで ObservableCollection を使用して DbContext の変更を追跡する
ObservableCollection<T>
一部のデータを一部のビューにバインドするために使用しています。DB の既存のデータを編集しているときに、ビュー モデルで単一のメソッドを呼び出すだけでデータ編集を保存できますSavechanges()
。コレクションに新しい項目を追加して編集することもできますが、SaveChanges()
メソッドは追加の行を db に挿入しません。
ビューモデルに渡されるエンティティがわかりません。T は複数のエンティティのマージされたクラスなので、これを行う必要があります。コンストラクターで:
新しいアイテムを取得するコード:
コレクションは現在編集中のアイテムですObservableCollection<T>
。CurrentItem
編集:
はcontext.ChangeTracker.Entries
新しいオブジェクトを認識しません。
私はいくつかの結合クエリの結果である複雑なタイプ(たとえばT)を持っています.Tがどのエンティティから作成されているのかわかりません.追加したい。
したがって、変更トラッカーに、結合クエリの結果である複合型から新しいオブジェクトを作成させる必要があります。
私はEF4.3.1を使用しています
助言がありますか?
ありがとうございました。
c# - Entity Framework での変更追跡のしくみ
次のコードを考えると、EF/DbContext は顧客オブジェクトに加えられた変更をどのように認識するのでしょうか。
ありがとうございました
sql-server-2008-r2 - SQL Server の変更追跡: 変更を手動で適用する方法
すべてのテーブル (約 200 テーブル) に対して変更追跡が有効になっているデータベースがあります。
既に追跡されている変更を適用することを SQL Server に伝えるにはどうすればよいですか?
変更の追跡をオフにしてからオンにするオプションは適切ではありません。時間がかかりすぎます。
java - hibernate anvers を使用するときにカスタム フィールドを作成する方法
spring 3.1、hibernate 4 を使用して新しいプロジェクトを開始していますが、アプリケーションでのアクティビティを追跡する必要があります。アクティビティ追跡の例who changed what?
from what to what?
とat which time?
、休止状態の anvers に関する入門チュートリアルを読みました。私には、まったく取得していない場合を除き、アクティビティ追跡よりもデータ履歴のようです。
その *_aud テーブルにカスタム フィールドを追加して、さらにユーザー定義のテーブルを挿入する方法はありますか。、、、のように、独自の種類のフィールドがあります。基本的に、作成date_created
しlast_modified
たテーブルに、を追加したいと思いますcreated_by
updated_by
databefore
dataafter
createdby
updatedby
それを行う方法はありますか。はいの場合は、適切なリソースを教えてください。
読んでくれてありがとう 。