EFCore 使用Sqlite(帶加密)


1. 創建加密和Sqlite 數據庫(已存在的數據我按網上的教程試過.沒成功)

  1. 安裝依賴 

          --這是連接驅動 

    Microsoft.Data.Sqlite.Core

        --這個是加密需要用到的

             SQLitePCLRaw.bundle_e_sqlcipher

      2. 創建有密碼的數據庫

    var connStr = @"Data Source=D:\a\SqLite\DAB.db;";//連接字符串
            var conn = new SqliteConnectionStringBuilder(connStr)
            {
                Mode = SqliteOpenMode.ReadWriteCreate,
                Password = "password"
            }.ToString();
using(var connection = new SqliteConnection(conn))
{
 connection.Open();
                var com = connection.CreateCommand();
                com.CommandText = @"CREATE TABLE Users (
    ID INTEGER PRIMARY KEY AUTOINCREMENT,
    UserName TEXT(16),
    CreateTime TEXT NOT NULL
);";
                com.ExecuteNonQuery();
}

注意. 建好加密數據庫后需要建一個表才有效.空庫依然可以不使用密碼連接( 已存在的連接不受影響, 在測試中有過幾次能連上庫但打開表時提示不是有效的數據庫 , 表里添加數據后就正常了)

3. 在ef 中使用

     添加依賴

       Microsoft.EntityFrameworkCore

       Microsoft.EntityFrameworkCore.Sqlite

   --如果沒有添加以下包則在字符串添加密碼會提示不支持password  如: You specified a password in the connection string, but the native SQLite library 'e_sqlite3' doesn't support encryption.”

      SQLitePCLRaw.bundle_e_sqlcipher

     以上添加完成就可以正常使用了,別忘了在連接中添加 Password=你的密碼 

 

或許還有更新方便的方法來做.這里就先只記錄目前試了行之有效的一種方式 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM