Manchmal reicht ein kleiner blöder Fehler aus um endlose Stunden Bugfixing auszulösen. Folgende Exception ist auch so einer:
System.Data.UpdateException was unhandled by user code
Message=”Unable to update the EntitySet ‘Product’ because it has a DefiningQuery and no <InsertFunction> element exists in the <ModificationFunctionMapping> element to support the current operation.”
Source=”System.Data.Entity”
Eigentlich hatte ich nur eine Datenbanktabelle und den dazugehörigen Zugriffscode geklont - mit ein paar kleineren Anpassungen. Die Exception wird in der fettgedruckten Zeile ausgelöst:
MyEntities DataContext = new MyEntities();
Product product = new Product(”ProductName”);
DataContext.AddToProduct(product);
DataContext.SaveChanges();
Dank Ken Cox und seinem Blog war ich nach Stunden in der Lage den Fehler bis zur Datenbanktabelle zurückzuverfolgen.
Beim Klonen in der SQL Management Console wird aus irgendeinem Grund beim Erstellen eines CREATE Script aus einer bestehenden Tabelle das Primary Key Flag nicht mitgenommen. Also, Flag manuell gesetzt, .edmx-Datei neu erzeugt und voila: Fehler weg!