2015-05-22 70 views
2

我使用代碼優先設計我的模型,並選擇GUID作爲我的主鍵的數據類型。我的課是這樣的:SQL Server CE 4.0,CodeFirst和GUID鍵

public class AccountMovementPlan 
{ 
    [Key, DatabaseGenerated(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity)] 
    public Guid AccountMovementPlanID { get; set; } 

    [Required] 
    public Guid UserAccountID { get; set; } 

    [ForeignKey("UserAccountID")] 
    public UserAccount UserAccount { get; set; }  

// etc, etc, etc 
} 

接下來,我選擇的SQL Server CE 4.0作爲數據存儲區,實現配置,使用SqlCEConnectionFactory和使用DropCreateDatabaseIfModelChanges作爲初始化方法。

但是,當我嘗試運行我的應用程序,我招呼着錯誤

類型的未處理的異常「System.Data.SqlServerCe.SqlCeException發生在EntityFramework.dll

這是告訴我,

身份列必須是整數或大整數數據類型,不能爲NULL。

我的問題很明顯:使用代碼優先的SQL Server CE不支持自動生成的GUID作爲PKs?或者,我在某處是否有錯誤?

非常感謝。

回答

2

不,不支持,您必須在您的代碼中使用Guid.NewGuid()來分配值。

+0

許多文章,很多事實。感謝您的簡單回答! – sinkien