搜索特定列并在linq EF 4.0中更新它
基本上,这个表包含大约50列,我必须搜索那个特定的列并更新它 假设val==27,那么columnName将是Alarm27,我必须在Alarm27列中设置“onOff”值 但问题是,我如何得到这个报警27,并只是更新它 这就是我迄今为止所尝试的搜索特定列并在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
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;
您可以像这样更改实体的当前值。
有关更多信息,请查看此