visual studio - C# 4.0/EF - Server-generated keys and server-generated values are not supported by SQL Server Compact -
i have moved 1 of projects vs2010/fx4.0 , using sql ce database backing store. since moving version of .net getting error:
server-generated keys , server-generated values not supported sql server compact.
my table was defined pk of username (string) & dooropen (datetime) sqlce required there pk on every table in fx3.5. in fx4.0 stumped. i've googled , every answer found was:
sqlce not support auto-generating values (which not needing) put guid id on there , populate code.
i tried approach , still getting same error!
sqlce:
create table [importdooraccesses] ( [rawdata] nvarchar(100) not null, [dooropen] datetime not null, [username] nvarchar(100) not null, [cardnumber] bigint not null, [door] nvarchar(4000) not null, [imported] datetime not null, [id] uniqueidentifier not null -- new column ); alter table [importdooraccesses] add constraint [pk_importdooraccesses] primary key ([id] );
the constraint used be:
alter table [importdooraccesses] add constraint [pk_importdooraccesses] primary key ([dooropen],[username]);
code:
foreach (dto.dooraudit newdooraudit in datatransferobject) { if (newdooraudit.doinsert) { myentities.addtoimportdooraccesses(new importdooraccess { cardnumber = newdooraudit.cardnumber, door = newdooraudit.door, dooropen = newdooraudit.dooropen, imported = newdooraudit.imported, rawdata = newdooraudit.rawdata, username = newdooraudit.username, id = guid.newguid() // - here suggested! }); } } myentities.savechanges();
so, what? bug in ef4? doing wrong?
tia
note:
going through edmx file (right-click, open with, xml) found 1 of date columns set storegeneratedpattern="identity".
<entitytype name="importdooraccesses"> <key> <propertyref name="id" /> </key> <property name="rawdata" type="nvarchar" nullable="false" maxlength="100" /> <property name="dooropen" type="datetime" nullable="false" /> <property name="username" type="nvarchar" nullable="false" maxlength="100" /> <property name="cardnumber" type="bigint" nullable="false" /> <property name="door" type="nvarchar" nullable="false" /> <property name="imported" type="datetime" storegeneratedpattern="identity" nullable="false" /> <property name="id" type="uniqueidentifier" nullable="false" /> </entitytype>
i switched pretty model view , clicked on every single column in database make sure not set. pita sure. looks perfect little tool/add-in needs created...
the important thing check edmx file , make sure property/column doesn't have storegeneratedpattern of identity in there.
Comments
Post a Comment