Entity framework 如何将一个表映射到两个实体中,但使用公共的LastUpdateTime/并发检查

Entity framework 如何将一个表映射到两个实体中,但使用公共的LastUpdateTime/并发检查,entity-framework,ef-code-first,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 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 timestamp字段,用于审核和并发。它不是数据库管理的-需要通过代码进行设置。我需要确保,如果我更新了Product或ProductExtra中的任何一个,那么这都会被更新,并且如果我要在同一事务中更新这两个对象中的字段,那么我不会遇到并发问题。Code first不允许将两个对象中的LastUpdate属性映射到同一列

我尝试将ProductExtra中的引用添加回Product,然后在保存对ProductExtra的更改时尝试更新Product上的LastUpdated。这映射正常,但我刚刚得到一个数据更新错误,说存在无法解决的循环依赖项