如何加载 SQLite 扩展(SQLite + Entity Framework Core)

问题描述 投票:0回答:1

我在 .NET 项目中使用 SQLite 和 Entity Framework Core。但我想为 SQLite 添加一些扩展。如何正确加载SQLite扩展? Nuget 包不存在,只有 .dll SQLite 扩展名。

我找到了这篇文章加载 SQLite 扩展,但是使用了

Microsoft.Data.Sqlite.SqliteConnection
,而且我不明白,如何在
DbContext
类或其他内容中配置
Startup
服务。

c# sqlite entity-framework-core .net-8.0 system.data.sqlite
1个回答
0
投票

我创建 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());
});

感谢斯维亚托斯拉夫·丹尼利夫

© www.soinside.com 2019 - 2024. All rights reserved.