Witam, piszę prostą aplikację webową w MVC3 i mam problem z edycją wpisów w bazie danych. Wcześniej napisałem w MVC1 prosty przykład i mi działało. Na początku nie mogłem w ogóle zrobić edycji, ponieważ we wszystkich tutorialach była komenda db.Entry(klient).State = EntityState.Modified;, tymczasem metody Entry nie było widać w podpowiedziach, a kiedy ją wpisywałem wyrzucało błąd, że taka metoda nie istnieje, oraz żadna metoda nie przyjmuje takiego arguentu. Ale to tak przy okazji.

Obecnie mam błąd o takiej treści:

Nie można zaktualizować obiektu EntitySet „Customer”, ponieważ ma on element DefiningQuery, a w elemencie <ModificationFunctionMapping> nie istnieje element <UpdateFunction>, który umożliwiałby obsługę bieżącej operacji.

Błąd pojawia się zarówno kiedy POST w kontrolerze wygląda tak, jak mi ją wygenerował Web Developer, jak i kiedy wstawię polecenia które działały mi w MVC1. Poniżej obecny wygląd tej funkcji, wykomentowany jest fragment wklejony z MVC1:

Kopiuj
// POST: /Customer/Edit/5

        [HttpPost]
        public ActionResult Edit(int id, Customer customer)
        {
            if (ModelState.IsValid)
            {
                /* Poniższy blok skopiowany z projektu w MVC1, gdzie działał bez zarzutu
                var zmieniany = db.Customer.Single(a => a.CustomerID == id);
                
                UpdateModel(zmieniany);
                */

                /* Tak to powinno wyglądać według większości tutoriali, ale metoda Entry nie istnieje
                pomimo, że wszystkie using są.
                db.Entry(klient).State = EntityState.Modified;
                */

                //A to wygenerował WebDeveloper
                db.Customer.Attach(customer);
                db.ObjectStateManager.ChangeObjectState(customer, EntityState.Modified);

                //Zarówno wygenerowane jak i przeniesione z MVC1 linie generują błąd tu:
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            return View(customer);
        }

Czy wie ktoś jak rozwiązać ten problem?