对于未受影响的字段,UpdateChanges的更新实体部分失败

时间:2017-03-02 10:59:38

标签: c# entity-framework entity-framework-6

我正在尝试使用EntityFramework 6在数据库中编写/更改数据时提高性能。

当获取要更新的实体时,我使用以下代码,因为我知道来自其他实体外键关键的主键:

// create a dummy entity
var dummy = new TheEntity
{
    TheEntityId = myKey
};

// check if not already attached
var attachedEntity = dbContext.TheEntity.Exists(nrp => nrp.TheEntityId == myKey); // this checks if not already attached
if (attachedEntity == null)
{
    // attach to the context
    dbContext.TheEntity.Attach(dummy);
}

// return the dummy
return dummy;

稍后我会更改实体的某些值(但只有一些),根据调用者的不同,这些值可能会有所不同。

然而,当SaveChanges被调用时,对于我没有触及的属性,我总是得到System.Data.Entity.Validation.DbEntityValidationException

我想要的是一个update-statement,它只更新标记为IsModified == true的值。

我还使用dbContext.Entry(dummy).Property(...).IsModified检查了条目的属性,只有我更改的属性为真,但其他属性为false,因此它们不应该更新,不是吗?

有什么问题?正如here所述,它应该按预期工作。

我尝试了答案以及评论'如果你不想设置db.Configuration.ValidateOnSaveEnabled = false ......',但仍然是同一个问题。我真的不想禁用验证。

0 个答案:

没有答案