c# .net Adsense ADO.NET Linq Viruses/security asp.net MVC JQuery Angular-js Node-js SEO Java C++ SQL API Networking vb.net .Net Css JavaScript Generics c#.Net entity framework HTML Website host Website Construction Guide HTTP tutorial W3C tutorial Web Services JSON Psychology Ionic framework Angular ReactJS Python Computer Android
entity framework

The number of primary key values passed must match number of primary key values defined on the entity.Parameter name: keyValues

| | ASP-NET , MVC

The number of primary key values passed must match number of primary key values defined on the entity.
Parameter name: keyValues

 

Controller:

  public ActionResult Edit(long id)
        {
          Department department = db.Departments.Find(id);
         if (department == null)
            {
                return HttpNotFound();
            }
            return View(department);
        }

Solution:

This error is happening when the entity table having more than one primary key value in the .edmx file. For that you should replace instead of “db.Departments.Find(id)” to the following db.Departments.SingleOrDefault(m=>m.DepartmentId==id). 

  public ActionResult Edit(long id)
        {
        Department department = db.Departments.SingleOrDefault(m =>m.RecId == id);
            if (department == null)
            {
                return HttpNotFound();
            }
            return View(department);
        }

Description: 

When I tried to edit the record in asp.net MVC application. I got this error “The number of primary key values passed must match number of primary key values”. After changing the linq Query in the Edit Action. Finally, it works fine.