我正在使用Xunit编写测试用例并使用基于Asp.Net Core 2.0构建的ABP框架。我想连接到我的本地数据库而不是内存数据库,这样我就可以在运行测试用例时验证记录。
public static void Register(IIocManager iocManager)
{
RegisterIdentity(iocManager);
var builder = new DbContextOptionsBuilder<MyCompanyDbContext>();
var inMemorySqlite = new SqliteConnection("Data Source=:memory:");
builder.UseSqlite(inMemorySqlite);
inMemorySqlite.Open();
iocManager.IocContainer.Register(
Component
.For<DbContextOptions<MyCompanyDbContext>>()
.Instance(builder.Options)
.LifestyleSingleton()
);
new MyCompanyDbContext(builder.Options).Database.EnsureCreated();
}
所以为了连接我的本地数据库,我做了以下更改,但它给出了错误。我在其他地方的应用程序中使用相同的连接字符串,它工作正常。
var inMemorySqlite = new SqliteConnection("Server=.\\SQLEXPRESS; Database=MyLocalDb; Trusted_Connection=True;");
答案 0 :(得分:0)
您正在尝试将非SQLite连接字符串与SqliteConnection
对象一起使用。
如果意图是连接到实际的db,那么连接字符串应该引用实际的db文件
var optionsBuilder = new DbContextOptionsBuilder<MyCompanyDbContext>();
var connectionString = "Data Source=MyRealLocalDb.db"; //use actual path
optionsBuilder.UseSqlite(connectionString);
//...