集合我有一個視圖模型包含兩個班...更新的類或視圖模型
public class vwbooking
{
public booking bookings { get; set; }
public IEnumerable<trace> traces { get; set; }
}
預訂和跟蹤是一個EDMX實體。
我想用一次保存來更新這兩個類中的數據。
這是我嘗試過,連同其他幾個不成功「的拍攝,在這黑暗的」變種...
public ActionResult Edit(vwbooking vwbooking)
{
if (ModelState.IsValid)
{
DbEntityEntry<vwbooking> entry = db.Entry(vwbooking);
entry.Property(e => e.bookings.firstname).IsModified = true;
db.SaveChanges();
}
}
調用保存方法時,我得到了以下錯誤...
實體類型vwbooking不是當前上下文模型的一部分。
GET方法成功加載。這篇文章是我遇到麻煩的地方。這是GET方法...
public ActionResult Edit(int id = 0)
{
booking booking = db.bookings.Find(id);
var viewModel = new vwbooking();
viewModel.bookings = booking;
viewModel.traces = (from l in db.traces where l.bookingid == booking.bookingid select l);
return View(viewModel);
}
這是我的數據庫上下文類
public class salesContext : DbContext
{
public salesContext() : base()
{
Configuration.LazyLoadingEnabled = true;
}
public salesContext(string Connection) : base(Connection)
{
Configuration.LazyLoadingEnabled = true;
}
public DbSet<booking> bookings { get; set; }
public DbSet<trace> traces { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<booking>().HasKey(e => e.bookingid);
modelBuilder.Entity<trace>().HasKey(e => e.traceid);
}
}
這是因爲vwbooking不是DbContext中的模型。它只是保存你的視圖的數據來顯示。您必須更新vwbooking屬性,因爲這些屬性會使您的模型成爲可能。 – jannagy02
好的 - 我想我明白了,但我認爲那就是我正在做的事情?我應該做什麼不同? – tintyethan
我在下面的答案 – jannagy02