C# “ApplicationDbContext”不包含“项”的定义
我不知道我做错了什么,这只是一个普通的asp.net mvc5项目。这是我的控制器:C# “ApplicationDbContext”不包含“项”的定义,c#,asp.net,C#,Asp.net,我不知道我做错了什么,这只是一个普通的asp.net mvc5项目。这是我的控制器: private ApplicationDbContext db = new ApplicationDbContext(); // GET: Items public ActionResult Index(string sortOrder, string currentFilter, string searchString, int? page) { ViewBag.Cu
private ApplicationDbContext db = new ApplicationDbContext();
// GET: Items
public ActionResult Index(string sortOrder, string currentFilter, string searchString, int? page)
{
ViewBag.CurrentSort = sortOrder;
ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
ViewBag.PriceSortParm = sortOrder == "Price" ? "price_desc" : "Price";
if (searchString != null)
{
page = 1;
}
else
{
searchString = currentFilter;
}
ViewBag.CurrentFilter = searchString;
var items = from i in db.Items
select i;
if (!String.IsNullOrEmpty(searchString))
{
items = items.Where(s => s.Name.ToUpper().Contains(searchString.ToUpper())
|| s.Catagorie.Name.ToUpper().Contains(searchString.ToUpper()));
}
switch (sortOrder)
{
case "name_desc":
items = items.OrderByDescending(s => s.Name);
break;
case "Price":
items = items.OrderBy(s => s.Price);
break;
case "price_desc":
items = items.OrderByDescending(s => s.Price);
break;
default: // Name ascending
items = items.OrderBy(s => s.Name);
break;
}
int pageSize = 3;
int pageNumber = (page ?? 1);
return System.Web.UI.WebControls.View( items.ToPagedList(pageNumber, pageSize));
//var items = db.Items.Include(i => i.Catagorie);
//return View(await items.ToListAsync());
}
// GET: Items/Details/5
public async Task<ActionResult> Details(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Item item = await db.Items.FindAsync(id);
if (item == null)
{
return HttpNotFound();
}
return View(item);
}
// GET: Items/Create
[Authorize(Roles = "Admin")]
public ActionResult Create()
{
ViewBag.CatagorieId = new SelectList(db.Catagories, "ID", "Name");
return View();
}
// POST: Items/Create
[HttpPost]
[ValidateAntiForgeryToken]
[Authorize(Roles = "Admin")]
public async Task<ActionResult> Create(Item item)
{
if (ModelState.IsValid)
{
db.Items.Add(item);
await db.SaveChangesAsync();
return RedirectToAction("Index");
}
ViewBag.CatagorieId = new SelectList(db.Catagories, "ID", "Name", item.CatagorieId);
return View(item);
}
// GET: Items/Edit/5
[Authorize(Roles = "Admin")]
public async Task<ActionResult> Edit(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Item item = await db.Items.FindAsync(id);
if (item == null)
{
return HttpNotFound();
}
ViewBag.CatagorieId = new SelectList(db.Catagories, "ID", "Name", item.CatagorieId);
return View(item);
}
// POST: Items/Edit/5
[HttpPost]
[ValidateAntiForgeryToken]
[Authorize(Roles = "Admin")]
public async Task<ActionResult> Edit(Item item)
{
if (ModelState.IsValid)
{
db.Entry(item).State = EntityState.Modified;
await db.SaveChangesAsync();
return RedirectToAction("Index");
}
ViewBag.CatagorieId = new SelectList(db.Catagories, "ID", "Name", item.CatagorieId);
return View(item);
}
// GET: Items/Delete/5
[Authorize(Roles = "Admin")]
public async Task<ActionResult> Delete(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Item item = await db.Items.FindAsync(id);
if (item == null)
{
return HttpNotFound();
}
return View(item);
}
// POST: Items/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
[Authorize(Roles = "Admin")]
public async Task<ActionResult> DeleteConfirmed(int id)
{
Item item = await db.Items.FindAsync(id);
db.Items.Remove(item);
await db.SaveChangesAsync();
return RedirectToAction("Index");
}
public async Task<ActionResult> RenderImage(int id)
{
Item item = await db.Items.FindAsync(id);
byte[] photoBack = item.InternalImage;
return File(photoBack, "image/png");
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
db.Dispose();
}
base.Dispose(disposing);
}
我得到以下错误严重性代码描述项目文件行
错误CS1061“ApplicationDbContext”不包含“Items”的定义,并且找不到接受“ApplicationDbContext”类型的第一个参数的扩展方法“Items”。是否缺少using指令或程序集引用?
但是在我的数据库中,我有Items表,并且我指向了正确的数据库 你应该有这样的东西:
public class ApplicationDbContext : DbContext
{
public DbSet<Item> Items { get; set; }
// Rest of data models
}
如果没有,这是不可能的。确保您已经在ApplicationDbContext类中声明了您的项集,那么您的ApplicationDbContext类中是否有属性项?@Stillgar是的,我添加了控制器>,Visual Studio为我构建了所有这些。您能发布数据上下文代码吗?我有这个,VisualStudio在使用视图构建控制器时添加了这一点。