使用 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 : )
推荐阅读
- C#通过fleck实现wss协议的WebSocket多人Web实时聊天(附源码)
- 团队城市未满足要求:MSBuildTools12.0_x86_Path 存在
- 使用 MSBuild.exe 在发布模式下构建 C# 解决方案
- 当我发布 Web 应用程序时,AfterPublish 脚本不运行
- 构建时 T4 转换的产品仅在下一个构建中使用
- ASP.NET Core Application (.NET Framework) for Windows x64 only error in project.assets.json
- 新的 .csproj 格式 - 如何将整个目录指定为“链接文件"到子目录?
- 如何将条件编译符号(DefineConstants)传递给 msbuild
- MSBuild 支持 Visual Studio 2017 RTM 中的 T4 模板
- NuGet 包还原找不到包,没有源
热点文章
团队城市未满足要求:MSBuildTools12.0_x86_Path 存在
0
使用 MSBuild.exe 在发布模式下构建 C# 解决方案
0
当我发布 Web 应用程序时,AfterPublish 脚本不运行
0
构建时 T4 转换的产品仅在下一个构建中使用
0
ASP.NET Core Application (.NET Framework) for Windows x64 only error in project.assets.json
0
新的 .csproj 格式 - 如何将整个目录指定为“链接文件"到子目录?
0
如何将条件编译符号(DefineConstants)传递给 msbuild
0
MSBuild 支持 Visual Studio 2017 RTM 中的 T4 模板
0
NuGet 包还原找不到包,没有源
0
使用 C# 6.0 功能运行 TFS 构建
0
