我正在尝试使用外键更新包含某些列的实体。一切似乎工作正常,但在第一次分配时,它需要超过1分钟,但如果我再次执行相同的操作,它会立即出现。
代码段:
public bool UpdateStatus(DetailDataModel DetailDataModel)
{
Details updateStatus = (from d in UnitOfWork.Details
where d.Id == DetailDataModel.Id
select d).FirstOrDefault();
updateStatus.StatusId = DetailDataModel.StatusId;
UnitOfWork.Commit();
return true;
}
以下是罪魁祸首:
updateStatus.StatusId = updateStatus.StatusId;
我找不到问题,但是当尝试更新同一实体的其他列时,它工作正常,问题仅在于Foreignkey列。与实体框架的关联是否有任何限制。
请提出您的想法,提前致谢。
答案 0 :(得分:1)
我猜你正在使用POCO T4 Generator并且你启用了延迟加载,因为在这种情况下可以很容易地解释延迟 - 生成的POCO类中的fixup methods将导致延迟加载Status实体,并依次延迟加载所有相关的细节。
如果您不需要延迟加载此操作,请尝试在您的上下文中关闭它,否则您将从实体模型中删除循环引用(Status
将没有导航属性到Details
)或修改T4模板并删除那些修复调用。
答案 1 :(得分:0)
禁用objectContext的延迟加载工作,因为它只是一列的Update语句,因此不需要Eager加载,代码工作正常:
UnitOfWork.EnableLazyLoading = false;