2
MovieStoreEntities MovieDb = new MovieStoreEntities();
public ActionResult Edit(int id)
{

    //var EditMovie1 = MovieDb
    AddMovieModel EditMovie = (from M in MovieDb.Movies
                               from C in MovieDb.Categories
                               where M.CategoryId == C.Id
                               where M.Id == id
                               select new AddMovieModel { Name = M.Name, Director = M.Director, Country = M.Country, categorie = C.CategoryName, Category = M.CategoryId }).FirstOrDefault();

    //AddMovieModel EditMovie1 = MovieDb.Movies.Where(m => m.Id == id).Select(m => new AddMovieModel {m.Id   }).First();
    List<CategoryModel> categories = MovieDb.Categories
       .Select(category => new CategoryModel { Category = category.CategoryName, id = category.Id })
       .ToList();

    ViewBag.Category = new SelectList(categories, "Id", "Category");


    return View(EditMovie);
}

//
// POST: /Default1/Edit/5

[HttpPost]
public ActionResult Edit(AddMovieModel Model2)
{
    List<CategoryModel> categories = MovieDb.Categories
        .Select(category => new CategoryModel { Category = category.CategoryName, id = category.Id })
        .ToList();
    ViewBag.Category = new SelectList(categories, "Id", "Category");



    if (ModelState.IsValid)
    {
        //MovieStoreEntities model = new MovieStoreEntities();






        MovieDb.SaveChanges();


        return View("Thanks2", Model2);
    }
    else
        return View();

}

これは、映画の詳細を編集し、SQL サーバーのデータベースを更新するために作成したコードです。これにはコンパイルエラーはありませんが、SQL Server データベースは更新されませんでした。

4

2 に答える 2

4

ここでカテゴリを更新していると仮定すると、次のようなことをする必要があります

 List<CategoryModel> categories = MovieDb.Categories
    .Select(category => new CategoryModel { Category = category.CategoryName, id = category.Id })
    .ToList();
ViewBag.Category = new SelectList(categories, "Id", "Category")
Category category = new Category()
category = categories.First(p=>p.CategoryId == Id);
category.Name = "New Name";
MovieDb.Categories.SaveChanges(category);
MovieDb.SaveChanges();

編集したいアイテムを取得する必要があります...この場合、カテゴリのリストからフィルタリングされるカテゴリです。次に、そのエンティティで savechanges メソッド、つまり MovieDb.Categories.SaveChanges() を呼び出して、更新するアイテムを渡すことができます。

于 2012-09-11T11:11:51.483 に答える
0

オブジェクトを使用Model2して新しいエンティティを作成し、それを ObjectContext に追加して、変更を保存する必要があります。データベースに何かを保存するコードを書いていません。

于 2012-09-11T09:36:00.620 に答える