我有一个主键"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?
我有一个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)