根据2列值选择一行

时间:2013-11-08 14:09:22

标签: c# asp.net-mvc ado.net

好吧所以我试图根据2列值选择一行,这是我的代码:

[HttpPost]
public ActionResult Index(Models.Seats ss)
{
   var bus = db.Seats.Where(u => u.BusID == ss.BusID && u.SeatID == ss.SeatID).FirstOrDefault();
   bus.SeatState = 1;
   db.SaveChanges();
   return View();
}

其中db是EF名称,seat是表名,ss.BusID保持“1”,ss.SeatID保存“A2”..

在执行代码

之后发现了图片

enter image description here

我的型号代码:

namespace MvcApplication12.Models
{
   using System;
   using System.Collections.Generic;

   public partial class Seats
   {
      public int BusID { get; set; }
      public string SeatID { get; set; }
      public Nullable<int> SeatState { get; set; }
   }
}

*我单独尝试了“.Find()”和“.firstorDefault()”,但结果仍然相同。

所以我的问题是我要更改总线ID为1且座位ID为A2的值,但正如您所看到的,它会更改BusID = 1的每一行的值?

1 个答案:

答案 0 :(得分:3)

请你这样试试:

var busList = db.Seats.Where(u => u.BusID == ss.BusID && u.SeatID == ss.SeatID).ToList();

foreach(var bus in busList) 
   bus.SeatState = 1;

db.SaveChanges();

我的代码会保存您表中具有必要SeatID和BusID的每一行。如果发生,请告诉我。