2010-07-15 37 views
1

這是我的表:的SQLite +實體框架4.0 +標識列/自動遞增不起作用

-- Original table schema 
CREATE TABLE [SchoolYear] (
    [Start] datetime NOT NULL, 
    [End] datetime NOT NULL, 
    [Id] integer PRIMARY KEY ON CONFLICT ABORT AUTOINCREMENT NOT NULL 
); 

我的實體在EF設計師StoredGeneratedPattern設置爲身份或計算和數據類型是Int64的。

每次我插入第二個學年對象我得到這個錯誤:

An object with the same key is already in the ObjectStateManager...

回答

3

檢查自動增量屬性具有StoreGeneratedPattern屬性中,而不是在CSDL模型的SSDL部分設置爲「身份」。
這是一個已知問題,在生成代碼時不會考慮概念屬性。

+0

它設置爲身份在兩個:SSDL + CSDL所以它應該工作,但它不! – msfanboy 2010-07-16 17:16:51

+0

不承認它早些時候,我現在有一個新的異常: System.InvalidOperationException了未處理: ......當屬性的當前值爲null該屬性的EntityKey只能設置... 編輯:添加一個新的上下文對象在我檢查表的時候第一次創建一個新行,所以autoinc必須工作。它現在有點不同了! – msfanboy 2010-07-16 17:57:33

+0

這是一個多麼愚蠢的錯誤:(再次遇到一個新的例外......) 我總是將相同的對象添加到似乎是問題的上下文中。 現在,它的工作。 我可以發誓,EF v1允許我添加儘可能多的相同對象而不會拋出異常,EF v1只是避免添加了僞裝對象。 似乎在EF v4中發生了變化? – msfanboy 2010-07-16 18:24:51