gpt4 book ai didi

c# - EF 迁移后 NPGSQL MapEnum 失败

转载 作者:行者123 更新时间:2023-12-04 00:03:09 33 4
gpt4 key购买 nike

我添加了一个 enum到 Entity Framework 并将其注册到 NPGSQL,as per docs :

static DataContext()
{
NpgsqlConnection.GlobalTypeMapper.MapEnum<MyEnum>();
}

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.ForNpgsqlHasEnum<MyEnum>();
...
}

运行迁移并启动 Web 应用程序后,抛出以下异常:

The CLR enum type MyEnum must be registered with Npgsql before usage, please refer to the documentation



如果我再次重新启动应用程序,它就可以正常工作 - 这只会在迁移后立即发生,其中 MyEnum被添加被应用。

最佳答案

问题是发生迁移后,NPGSQL 的类型映射与数据库不同步,并且 types need to be reloaded after migrations are performed .

这可以通过调用 ReloadTypes() 来解决。调用后Migrate() :

public void Migrate()
{
Database.Migrate();

using (var connection = (NpgsqlConnection)Database.GetDbConnection())
{
connection.Open();
connection.ReloadTypes();
}
}

关于c# - EF 迁移后 NPGSQL MapEnum 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55956923/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com