我在 .NET 项目中使用 SQLite 和 Entity Framework Core。但我想为 SQLite 添加一些扩展。如何正确加载SQLite扩展? Nuget 包不存在,只有 .dll SQLite 扩展名。
我找到了这篇文章加载 SQLite 扩展,但是使用了
Microsoft.Data.Sqlite.SqliteConnection
,而且我不明白,如何在 DbContext
类或其他内容中配置 Startup
服务。
我创建 IDbConnectionInterceptor
public class SQLiteExtensionInterceptor : IDbConnectionInterceptor
{
public DbConnection ConnectionCreated(ConnectionCreatedEventData eventData, DbConnection result)
{
var sqliteConnection = (SqliteConnection)result;
sqliteConnection.EnableExtensions();
sqliteConnection.LoadExtension(@"path to extension");
return sqliteConnection;
}
}
并在 Startup.cs ConfigureServices 中添加 db 服务
services.AddDbContext<YourDbContext>(options =>
{
options.UseSqlite("connectionString");
options.AddInterceptors(new SQLiteExtensionInterceptor());
});
感谢斯维亚托斯拉夫·丹尼利夫