如何在 ABP 框架中使用带有 SQLite 的真实数据库?
How to use real DB with SQLite in ABP framework?
我正在使用 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;");
您正在尝试将非 SQLite 连接字符串与 SqliteConnection
对象一起使用。
如果目的是连接到一个实际的数据库,那么连接字符串应该引用一个实际的数据库文件
var optionsBuilder = new DbContextOptionsBuilder<MyCompanyDbContext>();
var connectionString = "Data Source=MyRealLocalDb.db"; //use actual path
optionsBuilder.UseSqlite(connectionString);
//...
我正在使用 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;");
您正在尝试将非 SQLite 连接字符串与 SqliteConnection
对象一起使用。
如果目的是连接到一个实际的数据库,那么连接字符串应该引用一个实际的数据库文件
var optionsBuilder = new DbContextOptionsBuilder<MyCompanyDbContext>();
var connectionString = "Data Source=MyRealLocalDb.db"; //use actual path
optionsBuilder.UseSqlite(connectionString);
//...