使用外键更新列在Entity Framework中首次使用时间超过1分钟

时间:2012-02-14 06:55:25

标签: entity-framework entity-framework-4

我正在尝试使用外键更新包含某些列的实体。一切似乎工作正常,但在第一次分配时,它需要超过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列。与实体框架的关联是否有任何限制。

请提出您的想法,提前致谢。

2 个答案:

答案 0 :(得分:1)

我猜你正在使用POCO T4 Generator并且你启用了延迟加载,因为在这种情况下可以很容易地解释延迟 - 生成的POCO类中的fixup methods将导致延迟加载Status实体,并依次延迟加载所有相关的细节。

如果您不需要延迟加载此操作,请尝试在您的上下文中关闭它,否则您将从实体模型中删除循环引用(Status将没有导航属性到Details )或修改T4模板并删除那些修复调用。

答案 1 :(得分:0)

禁用objectContext的延迟加载工作,因为它只是一列的Update语句,因此不需要Eager加载,代码工作正常:

UnitOfWork.EnableLazyLoading = false;