你好的人時遇到了正在以下錯誤的問題:MVC3不能創建新的遊戲
The ObjectContext instance has been disposed and can no longer be used for operations that require a connection.
,並衝着下面的錯誤:
@Html.DisplayFor(modelItem => item.tblConsole.ConsoleName) "within the game table"
我有以下代碼在我的遊戲控制器:
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using GameTest.Models;
namespace GameTest.Controllers
{
public class GameController : Controller
{
private gamezoneDBEntities db = new gamezoneDBEntities();
//
// GET: /Game/
public ViewResult Index()
{
using (var db = new gamezoneDBEntities())
{
var Info = db.tblGames.Where(UserInfo => UserInfo.UserName.Equals(User.Identity.Name)).ToList();
return View(Info);
}
}
//
// GET: /Game/Details/5
public ViewResult Details(int id)
{
tblGame tblgame = db.tblGames.Find(id);
return View(tblgame);
}
//
// GET: /Game/Create
public ActionResult Create()
{
ViewBag.ConsoleNameIDFK = new SelectList(db.tblConsoles, "ConsoleName", "ConsoleName");
return View(new tblGame { UserName = @User.Identity.Name });
}
//
// POST: /Game/Create
[HttpPost]
public ActionResult Create(tblGame tblgame)
{
if (ModelState.IsValid)
{
db.tblGames.Add(tblgame);
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.ConsoleNameIDFK = new SelectList(db.tblConsoles, "ConsoleName", "ConsoleName", tblgame.ConsoleNameIDFK);
return View(tblgame);
}
//
// GET: /Game/Edit/5
public ActionResult Edit(int id)
{
tblGame tblgame = db.tblGames.Find(id);
ViewBag.ConsoleNameIDFK = new SelectList(db.tblConsoles, "ConsoleName", "ConsoleName", tblgame.ConsoleNameIDFK);
return View(tblgame);
}
//
// POST: /Game/Edit/5
[HttpPost]
public ActionResult Edit(tblGame tblgame)
{
if (ModelState.IsValid)
{
db.Entry(tblgame).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.ConsoleNameIDFK = new SelectList(db.tblConsoles, "ConsoleName", "ConsoleName", tblgame.ConsoleNameIDFK);
return View(tblgame);
}
//
// GET: /Game/Delete/5
public ActionResult Delete(int id)
{
tblGame tblgame = db.tblGames.Find(id);
return View(tblgame);
}
//
// POST: /Game/Delete/5
[HttpPost, ActionName("Delete")]
public ActionResult DeleteConfirmed(int id)
{
tblGame tblgame = db.tblGames.Find(id);
db.tblGames.Remove(tblgame);
db.SaveChanges();
return RedirectToAction("Index");
}
protected override void Dispose(bool disposing)
{
db.Dispose();
base.Dispose(disposing);
}
}
}
我已經使用這個代碼索引所以每場比賽是唯一的誰貼個用戶Ë遊戲:
var Info = db.tblGames.Where(UserInfo => UserInfo.UserName.Equals(User.Identity.Name)).ToList();
return View(Info);
,並已在我的控制器的第一個創建部分添加了這個:
return View(new tblGame { UserName = @User.Identity.Name });
此代碼的工作,當你不上創建點擊每個用戶都有遊戲的各個崗位但是當我按新建它崩潰
任何幫助,將不勝感激。請詢問您是否需要了解更多
謝謝你會嘗試,這是假設(x => x.tblConsole)? – user1137472 2012-04-06 14:47:13
'Include'還將從查詢中的數據庫中選擇tblConsole數據。這將使您可以訪問頁面上需要的所有數據,而無需EF進行額外查詢並需要DbContext。 – Paul 2012-04-06 14:51:09
謝謝工作:) x – user1137472 2012-04-06 14:52:52