我正在创建一个使用 SQL Server CE 3.5 作为其数据存储的基于 Entity Framework 4 的应用程序。
我有一个使用从实体数据模型创建的脚本生成的空.sdf
文件。.sqlce
当我运行此代码时:
Item item = new Item();
item.ID = 1;
item.Title = "example";
item.Value = 37;
using (ModelContainer context = new ModelContainer())
{
context.ItemsSet.AddObject(item);
context.SaveChanges();
}
在SaveChages()
我得到这个System.Data.UpdateException
:
SQL Server Compact 不支持服务器生成的键和服务器生成的值。
从这个问题我知道,当与实体框架一起使用时,SQL Server CE 3.5 不支持自动生成的主键。但是,在我的情况下,我明确设置了要添加的项目的 ID 属性。
还有什么问题吗?
编辑:
这是.sqlce
删除后我的脚本的内容IDENTITY(1,1)
:
-- Creating table 'ItemsSet'
CREATE TABLE [ItemsSet] (
[ID] int NOT NULL,
[Title] nvarchar(4000) NOT NULL,
[Value] int NULL
);
GO
-- Creating primary key on [ID] in table 'ItemsSet'
ALTER TABLE [ItemsSet]
ADD CONSTRAINT [PK_ItemsSet]
PRIMARY KEY ([ID] );
GO