Daizc
count.articles51
count.tags25
count.categories3
[Csharp]WPF集成Sqlite与数据库加解密

[Csharp]WPF集成Sqlite与数据库加解密

一句话总结

关于依赖安装
抽象层选用Entity Framework Core,只能安装3.x.x版本的。
因为.NETFramework是传统框架,只支持到3版本,不然就只能装大版本为6的Entity Framework(EF6),但是由于EF6已经不积极维护了,综合考虑还是更建议装EFC3

关于数据库加密
SQLite原版没有实现数据库加密,要加密就只能选用其他的SqLite发行版,他们的加密方式各异,用谁创建的数据库就得用谁读写。
推荐SQLiteStudio工具,可以选择很多加解密方式。

关于WPF集成SqLite加密
巨硬官方已经出了例子了.

1
2
3
dotnet remove package Microsoft.Data.Sqlite    # 这是个集成包,删掉
dotnet add package Microsoft.Data.Sqlite.Core # 这才是微软对Sqlite的封装核心
dotnet add package SQLitePCLRaw.bundle_e_sqlcipher # 这个真正想使用的Sqlite发行版的bundle包

修改ConnectString即可

1
2
3
4
5
6
7
# 记得别直接字符串拼,到时候被人注入了
SqliteConnectionStringBuilder sqliteConnectionStringBuilder = new SqliteConnectionStringBuilder {
Password = "xxxxxxxxxx",
Mode = SqliteOpenMode.ReadWriteCreate,
DataSource = "xxxxxxx.db"
};
var connectString = sqliteConnectionStringBuilder.ToString();

参考资料

WPF应用集成数据库

通过阅读文档(1#),大概了解了下DotNet的ORM生态,基本上就是用巨硬自家的解决方案Entity Framework
然后我打开Nuget,开始安装依赖,很快就遇到了第一个问题没法安装

第一个问题

为什么?因为这个包是Entity Framework Core,是给DotNet Core使用的对象映射框架。
而我们的基础框架是.NETFramework 4.8.1,只能用传统的Entity Framework,可恶的巨硬。

copyright.author:Daizc
copyright.permalink:https://note.bequick.run/[Csharp]WPF%E9%9B%86%E6%88%90Sqlite%E4%B8%8E%E6%95%B0%E6%8D%AE%E5%BA%93%E5%8A%A0%E8%A7%A3%E5%AF%86/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可