Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 与值转换器一起使用Hilo?_Entity Framework_Entity Framework Core_Ef Core 3.1 - Fatal编程技术网

Entity framework 与值转换器一起使用Hilo?

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; } } 然后在我

我有一个将int包装成这样的结构:


    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核心限制。这同样适用于自动增量(标识)特性。