如何将表映射到两个实体,但使用常见的LastUpdatedTime / Concurrency检查

时间:2013-10-18 13:58:14

标签: entity-framework ef-code-first

我正在编写现有的数据库架构,由遗留应用程序决定。许多表都有大量列。我已经成功使用了表格分割模式,例如,我有:

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。这映射好了,但我刚收到数据更新错误,说有一个无法解决的循环依赖。

0 个答案:

没有答案