2015-06-16 89 views
0

基本上表更新包含約50列,我必須尋找特定的列和更新。搜索特定的列和LINQ EF 4.0

可以說VAL == 27然後COLUMNNAME將Alarm27和「開關機」的價值我必須設置在Alarm27列。

但問題是如何得到這個Alarm27,只是更新。

這是我到目前爲止嘗試過的。

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.. 

     } 
    } 

回答

0

我幾乎沒有試過這個,但我認爲這可能適合你。

string alarmName = "Alarm" + val; 
context.OffShoreAlarms.Property(alarmName).CurrentValue = true; 

您可以像這樣更改您的實體的當前價值。 欲瞭解更多詳情,請查閱Link