Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
搜索特定列并在linq EF 4.0中更新它_Linq_Entity Framework_C# 4.0_Linq To Sql - Fatal编程技术网

搜索特定列并在linq EF 4.0中更新它

搜索特定列并在linq EF 4.0中更新它,linq,entity-framework,c#-4.0,linq-to-sql,Linq,Entity Framework,C# 4.0,Linq To Sql,基本上,这个表包含大约50列,我必须搜索那个特定的列并更新它 假设val==27,那么columnName将是Alarm27,我必须在Alarm27列中设置“onOff”值 但问题是,我如何得到这个报警27,并只是更新它 这就是我迄今为止所尝试的 public void UpdateAlarm(int val, bool onOff) { string alarmName = "Alarm" + val; using (ESEntities cont

基本上,这个表包含大约50列,我必须搜索那个特定的列并更新它

假设val==27,那么columnName将是Alarm27,我必须在Alarm27列中设置“onOff”值

但问题是,我如何得到这个报警27,并只是更新它

这就是我迄今为止所尝试的

   public void UpdateAlarm(int val, bool onOff)
    {
        string alarmName = "Alarm" + val;
        using (ESEntities context = new ESEntities())
        {
            var alarmid = context.OffShoreAlarms.Where(p => p.StationID == (int)TMStation.LQ).Select(p => p.OSAlarmID).FirstOrDefault();
            var alarmMonitor = context.OfSAlarmMonitors.Where(p => p.OSAlarmID == alarmid).Select(p => p).FirstOrDefault();

            switch (val)
            {
                case 1:
                    alarmMonitor.Alarm1 = onOff;
                    context.saveChanges();
                    break;
                case 2:
                    alarmMonitor.Alarm2 = onOff;
                    context.SaveChanges();
                    break;
                    .
                    .
                    .
                    .
                case 50:
                    alarmMonitor.alarm50 = onOff;
                    context.saveChanges();
                    break;
            }

            //TODO: context.SaveChanges(); do update operation.. 

        }
    }

我实际上还没有试过,但我认为这可能对你有用

string alarmName = "Alarm" + val;
context.OffShoreAlarms.Property(alarmName).CurrentValue = true; 
您可以像这样更改实体的当前值。 有关更多信息,请查看此