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。这映射正常,但我刚刚得到一个数据更新错误,说存在无法解决的循环依赖项