我正在尝试使用 EF4.1 在 ASP.NET-MVC3 中编辑具有导航属性的实体
我的模型:
[DataContract]
public class Event
{
[Key]
public int ID { get; set; }
public string Name { get; set; }
public Place Place { get; set; }
}
[DataContract]
public class Place
{
[Key]
public string ID { get; set; }
public string Name { get; set; }
}
我的数据上下文类:
public class myDB: DbContext
{
public DbSet<Event> Events { get; set; }
public DbSet<Place> Places { get; set; }
}
我的控制器发布编辑方法:
[HttpPost]
public ActionResult Edit(Event @event, string placeID)
{
if (ModelState.IsValid)
{
@event.Place = _db.Places.Find(placeID);
_eventoDB.Entry(@event).State = EntityState.Modified;
_eventoDB.SaveChanges();
return RedirectToAction("Index");
}
return View(@event);
}
我可以看到该地点在@event
从 null 更改为新地点之后@event.Place = _db.Places.Find(placeID);
但在SaveChanges
地点 id 与编辑之前保持相同之后。知道为什么吗?谢谢