Как я могу объединить SQL-таблиц, и создавать новые записи, используя ASP.NET и рамки сущности?
Я создал представление с помощью Microsoft SQL Server, которое имеет соединения для извлечения всей необходимой информации из моих 4 различных таблиц. В Visual Studio я использую ASP.NET чтобы создать веб-страницу для доступа к моей базе данных. Я поднял свой вид, который выглядит великолепно, однако, когда я иду, чтобы добавить новую запись, он говорит мне:
'InnerException {"представление или функция 'dbo.VehiclesView' не может быть обновлена, поскольку модификация затрагивает несколько базовых таблиц".}'
Как я могу исправить эту проблему?
Вот мой код VehiclesView:
<pre lang="c#">public class VehiclesViewsController : Controller { private DataConnection db = new DataConnection(); // GET: VehiclesViews public ActionResult Index() { return View(db.VehiclesViews.ToList()); } // GET: VehiclesViews/Details/5 public ActionResult Details(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } VehiclesView vehiclesView = db.VehiclesViews.Find(id); if (vehiclesView == null) { return HttpNotFound(); } return View(vehiclesView); } // GET: VehiclesViews/Create public ActionResult Create() { return View(); } // POST: VehiclesViews/Create // To protect from overposting attacks, please enable the specific properties you want to bind to, for // more details see https://go.microsoft.com/fwlink/?LinkId=317598. [HttpPost] [ValidateAntiForgeryToken] public ActionResult Create([Bind(Include = "VehicleId,Year,Name,Model,Type,EngineSize,Transmission,NumberOfDoors,Colour,Cost,Price,SoldDate")] VehiclesView vehiclesView) { if (ModelState.IsValid) { db.VehiclesViews.Add(vehiclesView); db.SaveChanges(); return RedirectToAction("Index"); } return View(vehiclesView); } // GET: VehiclesViews/Edit/5 public ActionResult Edit(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } VehiclesView vehiclesView = db.VehiclesViews.Find(id); if (vehiclesView == null) { return HttpNotFound(); } return View(vehiclesView); } // POST: VehiclesViews/Edit/5 // To protect from overposting attacks, please enable the specific properties you want to bind to, for // more details see https://go.microsoft.com/fwlink/?LinkId=317598. [HttpPost] [ValidateAntiForgeryToken] public ActionResult Edit([Bind(Include = "VehicleId,Year,Name,Model,Type,EngineSize,Transmission,NumberOfDoors,Colour,Price,Cost,SoldDate")] VehiclesView vehiclesView) { if (ModelState.IsValid) { db.Entry(vehiclesView).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } return View(vehiclesView); } // GET: VehiclesViews/Delete/5 public ActionResult Delete(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } VehiclesView vehiclesView = db.VehiclesViews.Find(id); if (vehiclesView == null) { return HttpNotFound(); } return View(vehiclesView); } // POST: VehiclesViews/Delete/5 [HttpPost, ActionName("Delete")] [ValidateAntiForgeryToken] public ActionResult DeleteConfirmed(int id) { VehiclesView vehiclesView = db.VehiclesViews.Find(id); db.VehiclesViews.Remove(vehiclesView); db.SaveChanges(); return RedirectToAction("Index"); } protected override void Dispose(bool disposing) { if (disposing) { db.Dispose(); } base.Dispose(disposing); } } }
Что я уже пробовал:
Я новичок в C# и еще новее в Entity Framework. Я посмотрел в интернете, чтобы увидеть, могу ли я найти решение, и то, что я нашел до сих пор, - это сценарий для присоединения к таблицам. Однако я не уверен, что мне это нужно, учитывая, что я сделал это в SQL
F-ES Sitecore
Вместо того чтобы пытаться обновить представление, действуйте непосредственно на таблицах.