相关疑难解决方法(0)

实体框架6 GUID作为主键:不能将值NULL插入列'Id',表'FileStore'; 列不允许空值

我有一个主键"Id"的实体,它是Guid:

public class FileStore
{
    public Guid Id { get; set; }
    public string Name { get; set; }
    public string Path { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

还有一些配置:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<FileStore>().Property(x => x.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
    base.OnModelCreating(modelBuilder);
}
Run Code Online (Sandbox Code Playgroud)

当我尝试插入记录时,我收到以下错误:

无法将值NULL插入列'Id',表'FileStore'; 列不允许空值.INSERT失败.\ r \n语句已终止.

我不想手动生成Guid.我只想插入一条记录Id并由SQL Server生成.如果我设置.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity),则Id列不是SQL Server中的标识列.

如何配置实体框架以在SQL Server中自动生成Guid?

c# entity-framework sql-server-2008 entity-framework-6

71
推荐指数
6
解决办法
10万
查看次数

自动生成主键(Guid)实体框架CTP5

我有一个PCOO课程

public class Account
    {
        [Key,DatabaseGenerated(DatabaseGenerationOption.Identity)]
        public string AccountId { set; get; }

        public string FirstName { set; get; }

        public string LastName { set; get; }

        public string Email { set; get; }


    }
Run Code Online (Sandbox Code Playgroud)

创建数据库时,我收到以下异常

Identity column 'AccountId' must be of data type int, bigint, smallint, tinyint, or decimal or numeric with a scale of 0, and constrained to be nonnullable.
Run Code Online (Sandbox Code Playgroud)

entity-framework entity-framework-ctp5

1
推荐指数
1
解决办法
5799
查看次数