显示错误信息“属性'AvailableSeats'是对象的关键信息的一部分,无法修改。” 我知道出现错误是因为我的表中没有主键,但是替代的解决方案是什么,因为我们作为一个团队来从事项目工作,现在如果我在数据库中进行更改,那么最终我们将无法能够彼此同步或合并我们的项目。请帮帮我。
这是我的asp.net mvc控制器:-
[ResponseType(typeof(Boolean))]
public IHttpActionResult PutAmount(CancelFlightDetails c3)
{
try
{
var amount = db.Customers.SingleOrDefault(f => f.Name == c3.Name && f.TicketNumber == c3.TicketNumber);
var amount1 = db.SeatsAvailabilities.FirstOrDefault(g => g.DepartureDate == c3.DepartureDate && g.FlightNumber == amount.FlightNumber);
var amount2 = db.SeatsAvailabilities.SingleOrDefault(g => g.DepartureDate == c3.DepartureDate && g.FlightNumber == amount.FlightNumber); ;
if (c3.DepartureDate == DateTime.Now.Date && amount2 != null)
{
amount2.AvailableSeats += 1;
amount2.TotalRevenue += c3.FareDetails;
db.Entry(amount2).State = EntityState.Added;
db.SeatsAvailabilities.Remove(amount1);
db.SaveChanges();
return Ok(true);
}
else
{
amount2.AvailableSeats ++;
amount2.ExtraRevenue += (decimal)0.6 * amount2.FareDetails;
amount2.TotalRevenue += amount2.ExtraRevenue;
db.Entry(amount2).State = EntityState.Added;
db.SeatsAvailabilities.Remove(amount1);
//db.Entry(amount2).State = EntityState.Modified;
db.SaveChanges();
return Ok(true);
}
}
catch (Exception ex)
{
throw ex;
//return Content(HttpStatusCode.InternalServerError, "Sql Server not connected");
}
}
因此,首先,我尝试使用EntityState.Modified,但它抛出了上面显示的错误,然后尝试通过添加新对象并删除先前的但仍然相同的错误来覆盖。