1

以下のコードでは、施設テーブルに新しい施設を追加しようとしています。「保存」メソッドは、DbContext SaveChanges() を呼び出します。SaveChanges() が実行された後、newFacility に Id が生成されることを期待しますが、生成されず、データベースにも保存されません。ファシリティ DbSet に新しいファシリティを追加する方法に何か問題がありますか?

[HttpPost]
            public ActionResult Create(CreateFacilityViewModel viewModel)
            {
                if (ModelState.IsValid)
                {
                    var facilities = _db.Facilities;
                    var newFacility = new Facility();

                    //newFacility.FacilityId = viewModel.FacilityId;
                    newFacility.FaclityName = viewModel.FaclityName;
                    newFacility.Address = viewModel.Address;
                    newFacility.City = viewModel.City;
                    newFacility.State = viewModel.State;

                    _db.Facilities.ToList().Add(newFacility);

                    _db.Save();

                    return RedirectToAction("detail", "facility", new { id = newFacility.FacilityId });
                }
                return View(viewModel);
            }

設備はこんな感じ。

 public DbSet<Facility> Facilities { get; set; }
  IQueryable<Facility> IGolfDataSource.Facilities
        {
            get { return Facilities; }
        }
4

2 に答える 2

1

変化する

_db.Facilities.ToList().Add(newFacility);

_db.Facilities.Add(newFacility);

リストではなく、コンテキストにオブジェクトを追加します。

于 2013-05-16T15:05:10.940 に答える