1

レガシ アプリによって指定された既存のデータベース スキーマにコーディングしています。多くのテーブルには多数の列があります。テーブル分割パターンをうまく使用できたので、たとえば次のようになりました。

public class Product {

   public int ProductId {get; set;}

   // Primary fields from Products table

   public ProductExtra ExtraDetails {get; set;}

}

public class ProductExtra {

   public int ProductId {get; set;}

   // Secondary fields from Products table

}

Products テーブルには、監査と同時実行の両方に使用される LastUpdated タイムスタンプ フィールドがあります。データベース管理ではありません。コードで設定する必要があります。Product または ProductExtra のいずれかを更新すると、これが更新されること、および同じトランザクションで両方のオブジェクトのフィールドを更新する場合に、同時実行の問題が発生しないことを確認する必要があります。コードを最初に使用すると、同じ列にマッピングされている両方のオブジェクトに LastUpdated プロパティを設定できません。

ProductExtra から Product への参照を追加してから、ProductExtra への変更を保存したときに、Product で LastUpdated を更新しようとしました。これは問題なくマップされましたが、解決できない循環依存関係があるというデータ更新エラーが発生しました。

4

0 に答える 0