0

私は2つのクラスを含むviewModelを持っています...

public class vwbooking
{
    public booking bookings { get; set; }
    public IEnumerable<trace> traces { get; set; }
}

Booking と trace は edmx のエンティティです。

これら 2 つのクラスのデータを 1 回の保存呼び出しで更新したいと考えています。

これは私が試したものであり、他のいくつかの失敗した「暗闇でのショット」の亜種と一緒に...

public ActionResult Edit(vwbooking vwbooking)
{
if (ModelState.IsValid)
{
    DbEntityEntry<vwbooking> entry = db.Entry(vwbooking);
    entry.Property(e => e.bookings.firstname).IsModified = true;

    db.SaveChanges();
}
}

save メソッドを呼び出すと、次のエラーが発生します...

エンティティ タイプ 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);
    }
}
4

1 に答える 1