我无法将.ForMySqlUseSequenceHiLo()与Pomelo.EntityFrameworkCore.MySql

时间:2019-07-19 16:31:41

标签: c# entity-framework-core mariadb ef-core-2.2 mariadb-10.3

我们的DBContext模型之一是使用以下界面作为基础创建的

public interface IEntity
{
    Guid Id { get; set; }
}

这是使用 EFCore 1x 构建的,因此,鉴于此版本的限制,我们最终有了更多的实体在我们的数据库上比那时我们想要的要多。我并不是说我们不能利用其他ID类型来混合它们,我不记得我们是否尝试过。今天,我们有了 EFCore 2.2 ,并且我们正在更改模型中很大一部分的Id的类型。

到目前为止,情况太复杂了:我们正在尝试修改一个特定的实体(将ID从Guid更改为long),但是,它利用了一个Guids提供给我们的强大功能包括:在到达数据库之前了解Id的值。我们知道 Hi/Lo 方法:要求数据库在Hi键中保留一个Lo值范围,这样我们就可以在内存中使用它们,以确保在发生以下情况时不会发生任何冲突将记录插入数据库中。

然后我可以使用我们的EFCore提供程序 Pomelo.EntityFrameworkCore.MySql 来实现此功能,因为我是一个乐观主义者。令我惊讶的是,我在Pomelo的github存储库中发现了这一点:ForMySqlUseSequenceHiLo

问题是我无法使用它,我认为即使我链接的代码的确也标记了版本2.2.0,并且我正在以某种方式禁用此功能。我已经安装了Nuget软件包,但无法引用此方法,它将无法编译。

我举起了issue on github,得到的回应让我觉得我缺少什么。这可能有一个简单的解决方案,所以这就是为什么我来这里搜索“ ForMySqlUseSequenceHiLo”的原因,我得到了0条结果,所以:

?您知道如何利用此功能,任何人都有实际可行的示例吗?

谢谢您的时间。

0 个答案:

没有答案