如何防止实体框架更新单个列并更新所有其他列

时间:2018-01-31 23:45:58

标签: c# asp.net asp.net-mvc entity-framework

我的ASP.NET MVC应用程序中有一个操作,用户应该能够为条目更新多个列。但出于安全原因,有一列不应更新。例如这个类:

public class
{
    [Key] 
    public int Id {get;set;}
    public int DataId {get;set;}
    public int Value1 {get;set;}
    // ...
    public int ValueN {get;set;}
}

有3个动作:“创建”,“编辑”和“SetValues”。

对于“创建”和“编辑”操作,可以设置DataId,但不能修改DataId的“SetValues”操作,但所有其他值都不能修改。

当我设置MyDbContext.Entry(myClassInstance).State == EntityState.Modified;时,它会将每列更新为上下文。

我现在正在做什么:我查询原始数据库条目,修改值然后保存更改。但我认为这应该是我之前不需要查询原始数据的方式。

我希望更新一些专栏。喜欢SQL

Update table 
set value1=1, value2=2
where table.id = id  

我只是向DB发送我想要更新的值。

如何阻止在此操作中更新DataId

0 个答案:

没有答案