1

我正在编写由旧版应用程序指定的现有数据库模式。许多表有大量的列。我已经成功使用了 table-split 模式,例如,我有:

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