• 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=你的密码 

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

  • 相关阅读:
    iOS之地理位置及定位系统 -- 入门笔记(用Swift)
    网易新闻iOS版使用的18个开源组件
    自学 iOS – 三十天三十个 Swift 项目
    iOS之UI--富文本总结
    IOS开发--横向流水布局实现
    IOS开发--仿制网易新闻
    Runtime 方法替换 和 动态添加实例方法 结合使用
    写给IOS开发工程师的网页前端入门笔记
    Runtime(动态添加属性)
    const,static,extern简介(重要)
  • 原文地址:https://www.cnblogs.com/itstac/p/15161391.html
Copyright © 2020-2023  润新知