内存中SQLite上下文抛出;没有这样的表格”;例外
我尝试使用内存中的SQLite数据库来改进我的单元测试,我的测试看起来像内存中SQLite上下文抛出;没有这样的表格”;例外,sqlite,entity-framework-core,in-memory-database,Sqlite,Entity Framework Core,In Memory Database,我尝试使用内存中的SQLite数据库来改进我的单元测试,我的测试看起来像 [Fact] public void CreateSampleType() { var sampleType = new SampleType("Type One"); var options = new DbContextOptionsBuilder<SamplesContext>() .UseSqlite("DataSource=:memory:") .Op
[Fact]
public void CreateSampleType()
{
var sampleType = new SampleType("Type One");
var options = new DbContextOptionsBuilder<SamplesContext>()
.UseSqlite("DataSource=:memory:")
.Options;
using (var context = new SamplesContext(options))
{
context.Database.EnsureCreated();
context.SampleType.Add(sampleType);
context.SaveChanges();
};
}
我错过了什么/ 可能需要手动打开连接。这个代码示例有效
using (var connection = new SqliteConnection("DataSource=:memory:"))
{
connection.Open();
var options = new DbContextOptionsBuilder<SamplesContext>()
.UseSqlite(connection)
.Options;
using (var context = new SamplesContext(options))
{
context.Database.EnsureCreated();
context.SampleType.Add(sampleType);
context.SaveChanges();
var items = context.SampleType.ToList();
Assert.Single(items);
};
}
使用(var-connection=new-SqliteConnection(“数据源=:内存:”)
{
connection.Open();
var options=new DbContextOptionsBuilder()
.UseSqlite(连接)
.选择;
使用(var-context=new-samplecontext(选项))
{
context.Database.recreated();
context.SampleType.Add(SampleType);
SaveChanges();
var items=context.SampleType.ToList();
断言。单个(项目);
};
}
using (var connection = new SqliteConnection("DataSource=:memory:"))
{
connection.Open();
var options = new DbContextOptionsBuilder<SamplesContext>()
.UseSqlite(connection)
.Options;
using (var context = new SamplesContext(options))
{
context.Database.EnsureCreated();
context.SampleType.Add(sampleType);
context.SaveChanges();
var items = context.SampleType.ToList();
Assert.Single(items);
};
}