Entity framework 与值转换器一起使用Hilo?
我有一个将int包装成这样的结构:Entity framework 与值转换器一起使用Hilo?,entity-framework,entity-framework-core,ef-core-3.1,Entity Framework,Entity Framework Core,Ef Core 3.1,我有一个将int包装成这样的结构: public struct LongId { public long Value { get; set; } } // Model public class TestEntity { public LongId Id { get; set; } public string Name { get; set; } } 然后在我
public struct LongId
{
public long Value { get; set; }
}
// Model
public class TestEntity
{
public LongId Id { get; set; }
public string Name { get; set; }
}
然后在我的上下文的OnCreating方法中:
protected override void OnModelCreating(ModelBuilder mb)
{
mb.Entity<TestEntity>()
.Property(o => o.Id)
.HasConversion(o => o.Value, l => new LongId{Value = l})
.UseHiLo();
}
模型创建时受保护的覆盖无效(ModelBuilder mb)
{
mb.实体()
.Property(o=>o.Id)
.HasConversion(o=>o.Value,l=>new LongId{Value=l})
.UseHiLo();
}
但是,在尝试运行迁移时,出现以下错误:
SQL Server序列不能用于为实体类型“TestEntity”上的属性“Id”生成值,因为该属性类型为“LongId”。序列只能与整数属性一起使用
我如何才能使其工作?“我如何才能使其工作?”错误消息告诉您不能。考虑当前的EF核心限制。这同样适用于自动增量(标识)属性。“我如何使其工作?”错误消息告诉您不能。考虑当前的EF核心限制。这同样适用于自动增量(标识)特性。