在下面的代碼中,我試圖將一個新的Facility用於我的設施表。 「Save」方法調用DbContext的SaveChanges()。 SaveChanges()執行後,我希望newFacility爲它生成一個Id,但它不會,也不會保存到數據庫。我可以在設施中添加新設施的方式有問題嗎?創建一個新的實體並調用SaveChanges將其保存到數據庫MVC
[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; }
}
添加在設施上不可用 –
(可選)如果您不想將設施作爲DbSet公開。您可以在_db上創建AddFacility方法。在AddFacility Method中,您可以訪問DbSet並使用它的Add方法。 –
Kelly