对于单元测试,我正在使用EFCore SQLite内存中数据库并根据MS文档创建架构,但当代码尝试执行EnsureDeleted()时失败,出现异常“SQLite Error 1:''.'
异常中没有提供太多详细信息,它在stacktrace下面提供失败。
堆栈跟踪的第一部分:
堆栈跟踪的第二部分:
该代码使用版本为.net6.0的Dotnet,对于EFcore和Sqlite,下面是版本为<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="7.0.0" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="7.0.0" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite.Core" Version="7.0.0" /> <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite.NetTopologySuite" Version="7.0.0" />
我用来建立连接的代码如下所示
var dbConnection = new SqliteConnection("Filename=:memory:");
dbConnection.Open();
var dbOptions = new DbContextOptionsBuilder<TestDBContext>()
.UseSqlite(dbConnection, opt => opt.UseNetTopologySuite())
.Options;
TestDBContext db = new TestDBContext(dbOptions);
db.Database.EnsureDeleted(); // This is where it fails.
db.Database.EnsureCreated();
1.我尝试过将连接字符串从“Filename=:memory:“更改为其他变体。
1.已尝试添加或删除不同的程序包。
到目前为止没有任何帮助。
1条答案
按热度按时间x4shl7ld1#
这是由
Microsoft.EntityFrameworkCore.Sqlite.NetTopologySuite v7.0.0
引起的。您可以尝试将代码更新为它应该可以正常运行。
以前的版本
v6.0.13
没有这个问题。