Entwickler-Ecke

Datenbanken (inkl. ADO.NET) - InvalidOperationException: Modify Entität schlägt fehl.


danielf - Sa 13.03.10 19:07
Titel: InvalidOperationException: Modify Entität schlägt fehl.
Hallo,

ich bekomme folgende InvalidOperationException:
"Eine Entität kann nur als geändert und ohne den ursprünglichen Zustand angefügt werden, wenn sie ein Versionselement deklariert oder über keine Richtlinie für die Überprüfung auf Updates verfügt."

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
var file = (from f in _projectDb.Files
      where f.ID == fileID
      select f).First();
file.NumberOfDownloads = file.NumberOfDownloads +1;

_projectDb.Files.Attach( file, true);
_projectDb.SubmitChanges();


Ich habe auch schon versucht ein Objekt zu ertellen, welches "ohne den ursprünglichen Zustand" ist. (Also ein neues Entity nur mit inkrementieren NumberOfDownloads) Was aber auch nicht erfolgreich war.

Hoffe es kann mich jemand aufklären, was da los ist :/ An anderen Stellen mache ich es genau so.

Gruß Daniel


Kha - Sa 13.03.10 19:46

Der Titel ist relativ nichtssagend. Um was geht es hier überhaupt, EF :nixweiss: .
In deinem Code solltest du das Attach jedenfalls einfach weglassen können. Und die erste Anweisung kannst du als

C#-Quelltext
1:
var file = _projectDB.Files.Single(f => f.ID == fileID);                    

schreiben.


danielf - Sa 13.03.10 20:16

Topic ist angepasst - das Linq to SQL Problem gelöst.

Brauch kein Attach... wunder mich zwar trotzdem warum es an anderer Stelle geht und hier nicht.

Aber danke :)

Gruß Daniel