Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Server-generated keys and server-generated values are not supported by SQL Server Compact

I just started to play with the entity framework, so I decided to connect it to my existing SQL Server CE database. I have a table with an IDENTITY(1, 1) primary key but when I tried to add an entity, I've got the above-mentioned error.

From MS Technet artice I learned that

SQL Server Compact does not support entities with server-generated keys or values when it is used with the Entity Framework. When using the Entity Framework, an entity’s keys may be marked as server generated. This enables the database to generate a value for the key on insertion or entity creation. Additionally, zero or more properties of an entity may be marked as server-generated values. For more information, see the Store Generated Pattern topic in the Entity Framework documentation. SQL Server Compact does not support entities with server-generated keys or values when it is used with the Entity Framework, although the Entity Framework allows you to define entity types with server-generated keys or values. Data manipulation operation on an entity that has server-generated values throws a "Not supported" exception.

So now I have a few questions:

  • Why would you mark key as server-generated if it is not supported and will throw an exception? It's hard to make sence from the quoted paragraph.
  • When I've tried to add StoreGeneratedPattern="Identity" to my entity's property, Studio complained that it is not allowed. What I'm doing wrong?
  • What is the best workaround for this limitation (including switching to another DB)? My limitations are zero-installation and using entity framework.
like image 311
Sergey Aldoukhov Avatar asked Mar 15 '09 20:03

Sergey Aldoukhov


1 Answers

When I hit this limitation, I changed the type to uniqueidentifier

like image 191
mostlytech Avatar answered Sep 16 '22 19:09

mostlytech