Entity Framework Core 6 迁移包执行错误

Posted

技术标签:

【中文标题】Entity Framework Core 6 迁移包执行错误【英文标题】:Entity Framework Core 6 Migration Bundle Execution Error 【发布时间】:2022-01-07 12:18:38 【问题描述】:

我正在尝试使用新的 EF Core 迁移包来更新我的数据库架构。

我使用以下方法创建了捆绑包:

dotnet ef migrations bundle --self-contained --runtime linux-x64

但是当我尝试使用以下方式更新数据库时:

./efbundle --connectionString $MY_CONNETION_STRING

甚至通过以下方式获得帮助:

./efbundle --help

我收到以下错误:

./efbundle: 重定位错误: ./efbundle: 符号 nanosleep 版本 GLIBC_2.2.5 未在文件 libpthread.so.0 中定义链接时间参考

但是,如果我将 efbundle 文件移动到 publish 目录,一切似乎都正常。

所以我的问题是:我是否总是必须将efbundle 文件放在publish 文件夹中?或者我可以将它放在任何地方并将迁移应用到数据库,因为它是一个独立的可执行文件?

如果不是,使用迁移包有什么意义?

【问题讨论】:

我不确定,但我怀疑它需要您的应用程序 DLL 作为上下文。 --self-contained 删除了框架部署的要求,如果您想在构建时提供单个文件,您还需要提供另一个参数,例如:/p:PublishSingleFile=true,因此您需要将其复制到发布文件夹或一起复制所需的 DLL。 我发现只有在使用 snap 安装 SDK 时才会出现问题。使用 APT 安装按预期工作。我认为问题出在 snap 上。 【参考方案1】:

好的。我已经使用 snap 在我的 Ubuntu 机器上安装了 DotNet SDK。 但是在我用 apt 重新安装它之后,它现在可以在任何地方工作。 似乎问题出在 snap 安装上(我之前也遇到过其他 EF 问题)。 但我仍然不确定是否有可能/如何解决 snap 安装的问题。

【讨论】:

以上是关于Entity Framework Core 6 迁移包执行错误的主要内容,如果未能解决你的问题,请参考以下文章

Entity Framework Core 6 迁移包执行错误

如何为 ASP.net Core 配置 Entity Framework 6

Entity Framework Core 6.0 中的新功能介绍

Entity Framework Core 6.0 中的新功能介绍

Entity Framework Core 6.0 中的新功能介绍

在 ASP.NET Core 中使用 Entity Framework 6