通过Entityframework核心实施强类型ID和Hilo策略

时间:2019-08-04 08:14:00

标签: entity-framework-core-2.2 hilo

我正在开发一个项目,在该项目中,不是使用像Int这样的基本类型作为Id,而是使用了“严格类型化”,例如CategoryId对象。我想将EntityFramework Core和HiLo策略一起使用,但是似乎objectframework只支持Integer字段/属性的Hilo。我需要知道entityframework是否在强类型ID上支持Hilo。如果是,我应该如何配置它。 预先感谢

更新: 为了弄清楚我到底做了什么,假设有一个名为“ Task”的类,其中包含一个名为“ TaskId”的强类型ID。我使用Fluent API如下配置此实体:

class TaskConfiguration : IEntityTypeConfiguration<Task>
{
    public void Configure(EntityTypeBuilder<Task> builder)
    {
        builder.HasKey(e => e.TaskId);
        builder.Property(e => e.TaskId).HasConversion(t => t.id, id => new TaskId(id));
    }
}

一切都还好。但是,如果我决定对实体“任务”使用高低策略,那么问题就开始了。我在HasConversion()之后使用ForSqlServerUseSequenceHiLo()方法,并在添加迁移时收到错误消息,并说该方法仅适用于具有整数类型的属性! 我不知道将Hi-Lo与强类型ID结合使用是否可行。如果可能的话,解决方案是什么。

0 个答案:

没有答案