パスワードで保護されたSQLiteとEntity Frameworkコア

c# entity-framework-core sqlite

質問

Entity Framework Coreを使用してWPFアプリケーション内で使用するために、パスワードで保護されたSQLiteデータベースを作成しようとしています。

私は既存のSQLite DB(データベースの最初のアプローチ)からDbContextとEntitiesを生成する方法を見つけましたが、パスワードで保護されたDBで作業することはできません。

実際には、パスワードで保護されたSQLite DBを作成する方法についてもわかりません。暗号化されたdbとパスワード保護されたdbの違いは何ですか?

受け入れられた回答

この記事とこの問題によれば、Microsoft.Data.Sqliteアセンブリ( EF Core使用される)を使用してデータベースを暗号化する方法はまだありません(まだですか?)。

これに基づいて、ここで私はEF Coreで動作するようにしています:

  • プロジェクトにSystem.Data.SQLite.Coreパッケージを追加します。
  • dbContextを設定している間は、 optionsBuilderに独自のDbConnection与えます:

    var conn = new SQLiteConnection(@"Data Source=yourSQLite.db;");
    conn.Open();
    
    var command = conn.CreateCommand();
    command.CommandText = "PRAGMA key = password;";
    command.ExecuteNonQuery();
    
    optionsBuilder.UseSqlite(conn);
    

Microsoft.Data.SqliteSqliteConnectionなく、 System.Data.SQLite.CoreアセンブリからSQLiteConnection (暗号化されたデータベースを管理できる)を使用することが非常に重要です。


この記事では、おそらく組み込みのsqlite3.dllを、 Microsoft.Data.SqliteアセンブリにSqliteConnectionれているsqlite3.dllを、暗号化されたデータベースを扱う別のもの(このリポジトリには無料のものを見つけることができます)に置き換えて使用しました。しかし、私はそれをテストしなかった。

ここでこれを行う方法です!



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ