• EFCore 使用Sqlite(带加密)


    1. 创建加密和Sqlite 数据库(已存在的数据我按网上的教程试过.没成功)

      1. 安装依赖 

              --这是连接驱动 

        Microsoft.Data.Sqlite.Core

            --这个是加密需要用到的

                 SQLitePCLRaw.bundle_e_sqlcipher

          2. 创建有密码的数据库

        var connStr = @"Data Source=D:aSqLiteDAB.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=你的密码 

    或许还有更新方便的方法来做.这里就先只记录目前试了行之有效的一种方式 

  • 相关阅读:
    如何用Python实现网络请求库中的UR解析器,面试必学
    为什么有人说 Python 多线程是鸡肋?
    router-view 与 动态组件 区别
    keep-alive
    vue 客户端渲染和服务端渲染
    js 数组对象深拷贝
    vue template标签
    Jquery中的日历插件
    HTML5中的canvas基本概念及绘图
    HTML5中的音视频处理
  • 原文地址:https://www.cnblogs.com/itstac/p/15161391.html
Copyright © 2020-2023  润新知