如何加载 SQLite 扩展(SQLite + EntityFrameworkCore)

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

我在 .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 服务。

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.