SQL Server CE 4.0, CodeFirst and GUID keys

本文关键字:CodeFirst and GUID keys Server CE SQL | 更新日期: 2023-09-27 17:50:24

我使用代码优先来设计模型,并选择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作为初始化方法。

但是,当我尝试运行我的应用程序时,我看到一个错误

在EntityFramework.dll中发生类型为'System.Data.SqlServerCe.SqlCeException '的未处理异常

告诉我,

标识列必须为整数或大整数数据类型,不能为NULL。

我的问题很明显:SQL Server CE与代码优先不支持自动生成guid作为pk ?或者,我在哪里出错了?

SQL Server CE 4.0, CodeFirst and GUID keys

不支持,您必须在代码中使用guide . newguid()来赋值