我正在創建一個使用SQL Server CE 3.5作爲其數據存儲的基於Entity Framework 4的應用程序。SaveChanges()與SQL Server CE上的System.Data.UpdateException
我使用從實體數據模型創建的.sqlce
腳本生成了一個空的.sdf
文件。
當我運行這段代碼:
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支持。
從this question我知道,實體框架一起使用時,則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
你在桌子上有什麼ID?它是否設置爲自動生成? – Habib 2012-04-05 18:20:52