用户登录
用户注册

分享至

使用 LINQ 加密列数据

  • 作者: DGBOY
  • 来源: 51数据库
  • 2022-12-13

问题描述

我想知道是否有简单的解决方案,或者我坚持以下:

更新数据库时:

<前>dti.Pass = Crypter.Encrypt(dti.Pass);_db.SubmitChanges();

从数据库中选择时:

<前>Data.DbTableItem dti = _db.Single(a=>a.Id == id);dti.Pass = Crypter.Decrypt(dti.Pass);

含义 - 我并不是真的喜欢编写重复的代码,这似乎是 LINQ 支持的合乎逻辑的事情;所以我想知道是不是.

解决方案

您可以添加具有封装此逻辑的属性的分部类,例如:

公共部分类 DbTableItem{公共字符串未加密通行证{得到{返回 Crypter.Decrypt(this.Pass);}放{this.Pass = Crypter.Encrypt(value)}}}

希望有帮助:)

I was wondering if there is easy solution to this or I'm stuck with following:

When updating DB:

dti.Pass = Crypter.Encrypt(dti.Pass);
_db.SubmitChanges();

When selecting from DB:

Data.DbTableItem dti = _db.Single(a=>a.Id == id);
dti.Pass = Crypter.Decrypt(dti.Pass);

Meaning - I am not really into writing repetitive code and this seems like logical thing to be supported by LINQ; so I'm wondering if it is.

解决方案

You could add a partial class with a property encapsulating this logic like:

public partial class DbTableItem
{
  public String UnencryptedPass
  {
    get
    {
       return  Crypter.Decrypt(this.Pass);
    }

    set
    {
       this.Pass = Crypter.Encrypt(value)
    }
  }
}

Hope it helps : )

软件
前端设计
程序设计
Java相关