我正在编写现有的数据库架构,由遗留应用程序决定。许多表都有大量列。我已经成功使用了表格分割模式,例如,我有:
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。这映射好了,但我刚收到数据更新错误,说有一个无法解决的循环依赖。