Entity Framework Coreを使用してWPFアプリケーション内で使用するために、パスワードで保護されたSQLiteデータベースを作成しようとしています。
私は既存のSQLite DB(データベースの最初のアプローチ)からDbContextとEntitiesを生成する方法を見つけましたが、パスワードで保護されたDBで作業することはできません。
実際には、パスワードで保護されたSQLite DBを作成する方法についてもわかりません。暗号化されたdbとパスワード保護されたdbの違いは何ですか?
この記事とこの問題によれば、Microsoft.Data.Sqliteアセンブリ( EF Core
使用される)を使用してデータベースを暗号化する方法はまだありません(まだですか?)。
これに基づいて、ここで私はEF 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.Sqlite
のSqliteConnection
なく、 System.Data.SQLite.Core
アセンブリからSQLiteConnection
(暗号化されたデータベースを管理できる)を使用することが非常に重要です。
この記事では、おそらく組み込みのsqlite3.dll
を、 Microsoft.Data.Sqlite
アセンブリにSqliteConnection
れているsqlite3.dll
を、暗号化されたデータベースを扱う別のもの(このリポジトリには無料のものを見つけることができます)に置き換えて使用しました。しかし、私はそれをテストしなかった。
ここでこれを行う方法です!