c# – 在实体框架中更新时排除属性

我一直在寻找一个正确的方法来标记一个属性,在更新MVC中的模型时不会更改。

例如,让我们来看这个小模型:

class Model
{
    [Key]
    public Guid Id {get; set;}
    public Guid Token {get; set;}

    //... lots of properties here ...
}

那么编辑方法MVC创建如下:

[HttpPost]
public ActionResult Edit(Model model)
{
    if (ModelState.IsValid)
    {
        db.Entry(model).State = EntityState.Modified;
        db.SaveChanges();
        return RedirectToAction("Index");
    }
    return View(model);
}

现在如果我的视图不包含令牌,它将通过该编辑无效。

我在寻找这样的东西:

db.Entry(model).State = EntityState.Modified;
db.Entry(model).Property(x => x.Token).State = PropertyState.Unmodified;
db.SaveChanges();

到目前为止,我发现的最好的方法是包容性和设置所有的属性,我想包括手,但我真的只想说,哪些被排除。

我们可以这样使用

 db.Entry(model).State = EntityState.Modified;
 db.Entry(model).Property(x => x.Token).IsModified = false;
 db.SaveChanges();

它会更新但没有Token属性

http://stackoverflow.com/questions/12661881/exclude-property-on-update-in-entity-framework

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:c# – 在实体框架中更新时排除属性