我正在尝试创建一个受密码保护的SQLite数据库,以便在使用Entity Framework Core的WPF应用程序中使用它.
我找到了如何从现有的SQLite DB(数据库第一种方法)生成我的DbContext和实体,但我无法使用受密码保护的DB.
实际上,我甚至不确定如何创建受密码保护的SQLite DB.加密数据库和受密码保护的数据库有什么区别?
我使用SQLite和Entity Framework.
我使用以下代码创建数据库:
class MyContext : DbContext
{
// DbSets, OnModelCreating(), etc.
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite("Data Source=c:\\test.db");
}
}
//this is in my test method
using (var db = new MyContext())
{
db.Database.EnsureCreated();
}
Run Code Online (Sandbox Code Playgroud)
上面的代码有效.数据库被创建.但我想通过在连接字符串中提供密码来加密数据库:
optionsBuilder.UseSqlite("Data Source=c:\\test.db;Password=mypassword");
Run Code Online (Sandbox Code Playgroud)
在这种情况下,在EnsureCreated调用之后,我得到了异常
System.Data.dll中发生未处理的"System.ArgumentException"类型异常附加信息:不支持关键字:"password".
使用密码有什么问题?如何加密SQLite数据库?