gpt4 book ai didi

c# - 如何修复 "SQLite Error 1: ' 找不到指定的模块。”使用 EF 和 Spatialite

转载 作者:行者123 更新时间:2023-12-05 07:20:14 29 4
gpt4 key购买 nike

我正在使用 EntityFrameworkCore.Sqlite.NetTopologySuite 创建一个空间数据库来暂时存储一个点,但最终将用于线等。我使用空间数据文档作为引用 https://learn.microsoft.com/en-us/ef/core/modeling/spatial#sqlite .数据需要保存到 Spatialite 数据库中。

阅读完文档后,我已经反射(reflect)了代码,因为它在选项构建器(如下)中包括“UseNetTopology”,并在类中创建了一个点。

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite("Filename=TestDb.db", x => x.UseNetTopologySuite());
}

当我尝试使用 update-database 更新数据库时,我收到错误:

SQLite Error 1: 'The specified module could not be found.'. 

我试图通过创建一个空白项目并从头开始工作来找到问题,但结果出现了同样的错误。

这是整个日志:

'.
at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
at Microsoft.Data.Sqlite.SqliteCommand.ExecuteNonQuery()
at Microsoft.EntityFrameworkCore.Infrastructure.SpatialiteLoader.Load(DbConnection connection)
at Microsoft.EntityFrameworkCore.Sqlite.Storage.Internal.SqliteRelationalConnection.LoadSpatialite()
at Microsoft.EntityFrameworkCore.Sqlite.Storage.Internal.SqliteRelationalConnection.Open(Boolean errorsExpected)
at Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.Execute(IRelationalConnection connection, DbCommandMethod executeMethod, IReadOnlyDictionary`2 parameterValues)
at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.Exists()
at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)
at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration, String contextType)
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
SQLite Error 1: 'The specified module could not be found.
'.

我找不到任何其他有相同问题的帖子。

编辑 19/8/19:我刚刚创建了一个新的空白项目,通过从 Spatialite 网站安装并使用 SQLite 连接到空间数据库来在没有 Entity Framework 的情况下进行测试。我在手动操作时收到了同样的错误,所以这可能是 Spatialite 的问题?

最佳答案

@贾布我通过将 mod_spatialite\4.3.0.1\runtimes\win-x64\native 的内容手动复制到项目的 bin 文件夹中(在我的例子中是 bin\Debug\netcoreapp2)(暂时)解决了这个问题.2\win10-x64

您可以关注 GitHub 上的主题 here .

显然有一个与此错误相关的已知问题 here .

关于c# - 如何修复 "SQLite Error 1: ' 找不到指定的模块。”使用 EF 和 Spatialite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57558305/

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