所以我的实体是从这样的类继承的:
public abstract class EntityBase
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid UuId { get; set; }
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[Timestamp]
public byte[] RowVersion { get; set; }
}
Key
Id字段工作正常,任何插入的Uuid始终为NULL
。我尝试添加:
builder.Entity<Series>().Property(x => x.UuId).ValueGeneratedOnAdd();
不起作用。
自从添加[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
以来,我一直尝试创建和应用新的迁移。
这也不起作用。
我尝试将其添加到我的EntityBase
类中:
public Guid UuId { get; set; } = Guid.Empty;
如果属性未赋值,则认为该属性已赋值 分配CLR默认值(字符串为null,整数为0,Guid.Empty 用于Guid等)。
我想念什么?我如何使这种自动生成工作?
答案 0 :(得分:0)
因此,经过反复试验,似乎唯一可行的解决方案是:
builder.Entity<Series>().Property(x => x.UuId).HasDefaultValueSql("NEWID()");
即使EF Core的文档没有建议这样做。除非我错过了什么。