c# - 将 SQL 函数添加到 .NET Core SaveChanges 方法

标签 c# sql asp.net-core

我想知道是否可以将 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/

相关文章:

php - 如何提取所有在laravel中重复的行?

sql - SQLite:连接两个选择语句

.net - .AddMvc() 在 ASP.NET Core 3.0 中?

c# - IAsyncActionFilter 中的 ParameterDescriptor 上的 GetCustomAttributes 丢失

c# - 我应该如何在 WPF 中表示这些记录和字段?

c# - 如何让 suggester 组件在 SolrNet 中工作?

c# - 处理未定义抽象方法C#的调用

c# - 为什么 double.Parse() 仅通过 rdp 抛出 FormatException?

sql - 光标获取 :The number of variables declared in the INTO list must match that of selected columns

c# - 在 API 中抽象掉对 IMemoryCache 的异步调用