數據庫優先解決方案。無法將NULL值插入'Id'列(數據庫優先)
我使用兩個表User
和Profile
。他們都使用uniqueidentifier
(SQL Server)作爲主鍵。我讓User
的方式自動接收它自己的GUID ID是從:
打開我的EDMX文件。
右鍵單擊用戶 - >屬性的Guid列 - >將StoreGeneratedPattern更改爲標識。
工作就像一個魅力。現在,我試着用Review
做相同的,但我試圖創建一個新的行,每次我收到以下錯誤:
無法將NULL值插入列「ID」,表 「XXXX .dbo.Profile';列不允許有空值。 INSERT失敗。 聲明已被終止。
如果我不使用Identity
爲StoreGeneratedPattern
爲Profile
,它不會產生一個唯一的ID,而不僅僅是零從而導致錯誤的重複,如果我再次嘗試創建一個新的行幫。
爲什麼用戶工作正常,但不是Profile
?
我遵循本指南guide這兩個表。
您的錯誤消息引用了一個名爲「Profil」的表,而不是「Profile」。是否有可能拼錯/命名它引用的表或類? –
對於uniqueidentifier(Guid)列,不能使用DatabaseGeneratedOption.Identity。 DBMS中的Guid列永遠不會自動增量,並且由於您已將StoreGeneratedPattern更改爲Identity,因此EF不會將其作爲值傳遞,因爲它預計它將由DBMS提供。 – DevilSuichiro
爲了讓它工作,將StoreGeneratedPattern更改爲None並設置有效的Guid值或更改數據類型。 – DevilSuichiro