Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# “ApplicationDbContext”不包含“项”的定义_C#_Asp.net - Fatal编程技术网

C# “ApplicationDbContext”不包含“项”的定义

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

我不知道我做错了什么,这只是一个普通的asp.net mvc5项目。这是我的控制器:

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在使用视图构建控制器时添加了这一点。