我想知道是否可以将 SQL 添加到现有的 SaveChanges 方法中。
在我的模型中,我通过添加自定义 Encrypted
属性指定了要加密的字段。
我找到了如何使用 IDataProtectionProvider
成功加密数据。
但是,需要使用 SQL 的 ENCRYPTBYPASSPHRASE()
函数对数据进行加密。
我的模型中的字段类型是字符串类型(在某些情况下是 int 类型),我想将它们作为 varbinary 保存在我的数据库中。
我的问题是是否可以创建一个函数,根据中指定的 Encrypted
属性,使用所需的 ENCRYPTBYPASSPHRASE()
函数将我的实体保存到数据库中模型。
提前致谢。
最佳答案
选项 1。您可以重写 SaveChanges()
方法并在其中添加加密逻辑。
public override int SaveChanges()
{
foreach (var insert in this.ChangeTracker.Entries<IEntityBase>()
.Where(e => e.State == EntityState.Added))
{
if (insert.Entity.Encrypted)
{
...
}
}
}
选项 2。您可以使用存储过程将对象保存到数据库。
关于c# - 将 SQL 函数添加到 .NET Core SaveChanges 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62384860/