我有一个并发错误处理程序,它执行从客户端到数据库的当前显式字段更新,然后从数据库重新加载记录以刷新客户端的所有其他更改。
当我刷新我的主要实体 - 公司时,这可以正常工作,但我不能对相关的Collection属性进行更新。
我正在使用更改跟踪,因此上下文始终从这些副本中提取。
有没有办法让数据库刷新集合属性?我找到的所有Load方法和排列都不会更新已加载的副本。
以下示例精简到1个收集属性。 此处,当refreshFromStore为true时,将从当前数据库值刷新Company Entity。注释掉的PhoneNumbers属性Load是无用的,不会从当前数据库值更新。
如何做到这一点?
由于
public Company GetCompany(int CompanyId, bool refreshFromStore)
{
Company company = context.Companies
.Include("PhoneNumbers")
.Where(c => c.Id == CompanyId).FirstOrDefault();
if (refreshFromStore)
{
context.Entry(company).Reload();
//context.Entry(company).Collection<PhoneNumber>("PhoneNumbers").Load(); No good - doesn't write to tracked instances
}
return company;
}
答案 0 :(得分:0)