将sql函数添加到.net核心savechanges方法

laximzn5  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(209)

我想知道是否有可能将sql添加到现有的savechanges方法中。
在我的模型中,我通过添加自定义 Encrypted 属性。
我找到了如何用 IDataProtectionProvider . 但是,需要使用sql的 ENCRYPTBYPASSPHRASE() 功能。
我的模型中的字段类型是string类型(在某些情况下是int),我想将它们作为varbinary保存在数据库中。
我的问题是,是否有可能创建一个函数,将我的实体保存到db中,并提供所需的 ENCRYPTBYPASSPHRASE() 函数,基于 Encrypted 在模型中指定的属性。
提前谢谢。

irlmq6kh

irlmq6kh1#

方案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。可以使用存储过程将对象保存到数据库中。

相关问题