0
我有以下类:插入/更新多个对象
public class Location
{
public int Id { get; set; }
public string Description { get; set; }
public string CarId { get; set; }
public Car Car { get; set; }
}
public class Car
{
public string Id { get; set; }
public string Color { get; set; }
}
和一个视图:
<div>@Html.LabelFor(location => location.Description)</div>
<div>@Html.EditorFor(location => location.Description)</div>
<div>@Html.LabelFor(location => location.Car.Id)</div>
<div>@Html.EditorFor(location => location.Car.Id)</div>
<div>@Html.LabelFor(location => location.Car.Color)</div>
<div>@Html.EditorFor(location => location.Car.Color)</div>
当我试试这个:
[HttpPost]
public ActionResult Create(Location location)
{
if (ModelState.IsValid)
{
Car car = db.Car.Find(location.Car.Id);
if (car != null)
db.Entry(car).CurrentValues.SetValues(location.Car);
else
db.Car.Add(location.Car);
db.Location.Add(locacao);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(locacao);
}
它打破了“分贝。 SaveChanges'因为它说'不能在对象'dbo.Car'中插入重复键''。
如果我删除'db.Location.Add(locacao);',所以它适用于汽车(插入和更新),但没有位置被添加到数据库中。
当数据库中没有汽车ID时,如何插入新车,何时更新以及插入新位置?
完美!非常感谢。 – MuriloKunze 2012-04-11 12:29:58