我尝试使用EntityFramework Core 1.0(EntityFramework 7的新名称)来管理C#Desktop应用程序中的SQLite数据库。
我阅读官方文档和我的测试应用程序。
我的问题是:是否可以对数据库进行密码保护?
我知道有很多方法可以做到,它还存在允许这样做的.NET类System.Data.SQLite,但是如何使用EFCore 1来做呢?
我无法理解是否有可能。
感谢您的帮助,
恩里科
答案 0 :(得分:5)
使用EntityFramework Core 2.0(EFCore 2.0),可以使用加密的SQLite数据库。
将SQLite加密(SQLCiher)数据库与EFCore一起使用的步骤
在您的。中添加Microsoft.EntityFrameworkCore.Design的引用 项目。
添加引用 Microsoft.EntityFrameworkCore.Sqlite.Core。这非常重要 步。不要添加引用 Microsoft.EntityFrameworkCore.Sqlite。否则它将无效。
添加SQLitePCLRaw.bundle_sqlcipher的引用。用于加密 这是必需的。添加以下行ExcludeAssets =" All"是 重要,否则它将无法正常工作。有关详细信息,请参阅以下链接 http://www.bricelam.net/2016/06/13/sqlite-encryption.html
答案 1 :(得分:2)
EF Core使用Microsoft.Data.Sqlite,它目前不支持开箱即用的加密。见https://github.com/aspnet/Microsoft.Data.Sqlite/issues/184。您可以使用SQLite扩展自己添加加密。
答案 2 :(得分:-1)
这篇文章有点陈旧,但我找到了解决这个问题的方法。
看看it。