如何正确排除UpdateModel中的属性?

时间:2016-05-27 06:36:05

标签: entity-framework updatemodel

我正在使用EF并拥有一个模型实体Test.cs,它包含几个属性和一个计算属性Deviation。此属性应显示在gridview中,但不应对此属性进行更新。我已将计算列定义如下:

[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public decimal? Deviation { get; private set; }

在控制器方法中,我将尝试按以下方式保存更改:

public virtual ActionResult BatchUpdate(MVCxGridViewBatchUpdateValues<T, int> updateValues)
    {
        if (ModelState.IsValid)
        {
            var model = Db.Set<T>();

            // update existing records              updateValues.Update.Where(updateValues.IsValid).ForEach(updateValue => UpdateModel(model.Single(e => e.Id == updateValue.Id), null, null, excludeProperties: new[] { "Deviation" }));

            // apply changes
            Db.SaveChanges();
        }
        else
        {
            throw new Exception("Model is invalid");
        }

        return GridViewPartial();
    }

即使我排除了计算属性Deviation,我也得到以下异常:

类型&#39; System.Data.SqlClient.SqlException&#39;的第一次机会异常。发生在System.Data.dll中 其他信息:列名称无效&#39;偏差&#39;。

知道我在这里做错了吗?

提前致谢。

0 个答案:

没有答案