質問: 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.Sqlite`の`SqliteConnection`なく、 `System.Data.SQLite.Core`アセンブリから`SQLiteConnection` (暗号化されたデータベースを管理できる)を使用することが非常に重要です。 この記事では、おそらく組み込みの`sqlite3.dll`を、 `Microsoft.Data.Sqlite`アセンブリに`SqliteConnection`れている`sqlite3.dll`を、暗号化されたデータベースを扱う別のもの(このリポジトリには無料のものを見つけることができます)に置き換えて使用しました。しかし、私はそれをテストしなかった。 ここでこれを行う方法です!