首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有Server的System.Data.UpdateException on SaveChanges()

带有Server的System.Data.UpdateException on SaveChanges()
EN

Stack Overflow用户
提问于 2012-04-05 17:54:55
回答 1查看 3.9K关注 0票数 0

我正在创建一个基于实体框架4的应用程序,它使用SQLServerCE3.5作为其数据存储。

我使用实体数据模型创建的.sdf脚本生成了一个空的.sqlce文件。

当我运行这段代码时:

代码语言:javascript
复制
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

SQLServerCompact不支持

服务器生成的键和服务器生成的值。

this question中我知道,当与实体框架一起使用时,SQLServerCE3.5不支持自动生成的主键。然而,在我的例子中,我显式地设置了我要添加的项的ID属性。

还有什么不对劲吗?

编辑:

这是删除.sqlce后的IDENTITY(1,1)脚本的内容

代码语言:javascript
复制
-- 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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-05 18:28:37

如果将ID设置为数据库中的自动增量,则从代码中显式设置ID将不会执行任何操作。您可以使用use标识符,也可以修改表中的主键并删除自动增量。然后,您将能够将Id设置为代码中的值。查看这个线程Server-generated keys and server-generated values are not supported by SQL Server Compact

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10033485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档