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

时间:2015-06-16 16:35:35

标签: linq entity-framework c#-4.0 linq-to-sql

基本上,表包含大约50列,我必须搜索该特定列并进行更新。

让我们说val == 27然后columnName将是Alarm27和" onOff"值我必须在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.. 

        }
    }

1 个答案:

答案 0 :(得分:0)

我几乎没有尝试过这个,但我认为这对你有用。

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

您可以像这样更改您实体的当前值。 有关详细信息,请查看此Link