我在 .NET 项目中将 SQLite 与 EntityFrameworkCore 结合使用。但我想为 SQLite 添加一些扩展。如何正确加载SQLite扩展? Nuget 包不存在,只有 .dll sql lite 扩展名。
我找到了这篇文章https://learn.microsoft.com/en-us/dotnet/standard/data/sqlite/extensions,但是使用了 Microsoft.Data.Sqlite.SqliteConnection,我不明白,如何我可以在 Startup 类或其他类中配置 DbContext 服务。
我创建 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());
});
感谢斯维亚托斯拉夫·丹尼利夫