SQL Server & ASP .NET Blog

Interessantes und Wissenswertes

SQLCE und ADO .NET Entity Framework

Möchte man das das ADO .NET Entity Framework und den SQL Server Compact in einer Anwendung zusammen verwenden gibt es einen interessanten Punkt zu beachten – keine IDENTITY Columns in der Datenbank verwenden. Durch die Einschränkung des SQL CE in einem Batch nur einen Befehl ausführen zu können ist es für das Entity Framework bei einem INSERT unmöglich festzustellen, welches der neue IDENTITY Wert ist – daher werden diese Spalten nicht unterstützt.

Einfache Lösung: Selbst erstellen des Schlüssels in der Anwendung. Um zu vermeiden hier auch erst wieder eine MAX(Id) herausfinden zu müssen bieten sich hier auch GUIDs (bzw. uniqueidentifier) an. Beim Erzeugen eines Objektes also einfach:

myObject.myId = Guid.NewGuid();

…dann ist auch das Entity Framework zufrieden.

Dazu noch ein Link (da ich meine Spalten vorher natürlich als INT IDENTITY erstellt habe ;-)) mit dem Opensource-Tool bzw. SSMS Addin http://exportsqlce.codeplex.com/ ist es ein leichtes die SQL CE Datenbank komplett inkl. Daten zu skripten.