相关疑难解决方法(0)

在实体框架中排除更新属性

在MVC中更新模型时,我一直在寻找一种标记属性的正确方法.

例如,让我们采用这个小模型:

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

    //... lots of properties here ...
}
Run Code Online (Sandbox Code Playgroud)

然后MVC创建的编辑方法如下所示:

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

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

我正在寻找这样的东西:

db.Entry(model).State = EntityState.Modified;
db.Entry(model).Property(x => x.Token).State = PropertyState.Unmodified;
db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

到目前为止,我发现的最好的方法是包容并设置我想要包含的所有属性,但我真的只想说哪些属性被排除在外.

c# asp.net-mvc entity-framework

74
推荐指数
3
解决办法
5万
查看次数

实体框架:如果值没有变化,则取消属性更改

在实体对象上设置属性时,即使该值与之前完全相同,它也会将值保存到数据库中.反正有没有阻止这个?

例:

如果我加载一个Movie对象并且Title是"A",如果我再次将Title设置为"A"并且SaveChanges()我希望我不会在SqlProfiler中看到UPDATE语句但是我是.反正有没有阻止这个?

entity-framework

5
推荐指数
1
解决办法
5788
查看次数

标签 统计

entity-framework ×2

asp.net-mvc ×1

c# ×1