Ahm*_*mel 9 c# sqlite xamarin.forms entity-framework-core
我有一个Xamarin表单应用程序,它创建一个Sqlite数据库.
Microsoft.EntityFrameworkCore.Sqlite
用于创建数据库.我想为文件添加密码.我搜索了互联网,但不幸的是我找不到任何明显的方法.在StackOverflow上,有一些问题与我的问题类似,但是,该平台不是Xamarin Forms.
以下是问题:
这是我创建数据库的代码:
public class DoctorDatabaseContext : DbContext
{
private readonly string DatabasePath;
public virtual DbSet<OperationsNames> OperationsNames { get; set; }
public virtual DbSet<CommonChiefComplaint> CommonChiefComplaint { get; set; }
public virtual DbSet<CommonDiagnosis> CommonDiagnosis { get; set; }
public virtual DbSet<CommonLabTests> CommonLabTests { get; set; }
public DoctorDatabaseContext(string DatabasePath)
{
FixedDatabasePath.Path = this.DatabasePath = DatabasePath;
Database.EnsureCreated();
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite($"Filename={DatabasePath}");
}
}
Run Code Online (Sandbox Code Playgroud)
我在 Microsoft.Data.Sqlite 中写了一篇关于加密的文章。您可以通过将打开的连接传递到 EF Core 来利用它UseSqlite
。
而不是Microsoft.EntityFrameworkCore.Sqlite
,使用这些包:
protected override void OnConfiguring(DbContextOptionsBuilder options)
{
// TODO: Dispose with DbContext
_connection = new SqliteConnection(_connectionString);
_connection.Open();
// TODO: Avoid SQL injection (see post)
var command = _connection.CreateCommand();
command.CommandText = "PRAGMA key = '" + _password + "'";
command.ExecuteNonQuery();
options.UseSqlite(_connection);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
988 次 |
最近记录: |