gpt4 book ai didi

c# - 在内存中使用 Entity FrameWork Core 和 Sqlite 我得到 "no such table: ControlGroup"错误

转载 作者:行者123 更新时间:2023-11-30 22:55:06 28 4
gpt4 key购买 nike

我的问题的上下文是,我想为我的应用程序创建一些单元测试来执行一些特定于关系的代码,所以我不能使用标准的 .UseInMemoryDatabase(databaseName: dbContextName)我将其更改为 .UseSqlite("DataSource=:memory:") 以解决此问题。

但现在我得到:

SqliteException: SQLite Error 1: 'no such table: ControlGroup'.

我该如何解决这个问题?

最佳答案

您需要在测试范围内保持连接打开并创建数据库。

public class Tests : IDisposable
{
private readonly SqliteConnection _connection;
private readonly DbContextOptions _options;

public Tests()
{
_connection = new SqliteConnection("datasource=:memory:");
_connection.Open();

_options = new DbContextOptionsBuilder()
.UseSqlite(_connection)
.Options;

using (var context = new MyContext(_options))
context.Database.EnsureCreated();
}

public void Dispose()
{
_connection.Close();
}

[Fact]
public void Test()
{
using (var context = new MyContext(_options))
{
// use in memory database
context.ControlGroup ...
}
}
}

关于c# - 在内存中使用 Entity FrameWork Core 和 Sqlite 我得到 "no such table: ControlGroup"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55594550/

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