2012-02-06 53 views
0

我已经有一个表中的列已经通过SQL触发器进行了非对称加密。密钥(通过密码)驻留在SQL DB中。现在,我需要通过每xx分钟运行的控制台应用程序对其进行解密。通过LINQ的非对称解密

我通过LINQ抓取所有字段并运行foreach循环并生成一些文本文件和xml文件等等。当我尝试解密数据时出现问题。

所以,我有几个选择,但没有一个让我到任何地方。

  • 我试着运行ExecuteCommand,但我一直没能解决如何打开摆在首位的非对称密钥。

  • 我试过运行一个存储过程,然后通过LINQ调用它。但是,我可以通过结果循环来匹配它们(即,我应该在foreach内运行一个foreach)吗?

  • 我试过12个不同的其他东西,无济于事。 :)

无论如何,任何想法将不胜感激。我只需要获取未加密的值(我可以在MSSQL中解密它们),然后将它们添加到我的工作流程中。

在此先感谢!

回答

0

我可能会使用一个视图,并绑定一个新的Linq实体;假设你有SQL解密这些值。通过这种方式,您可以防止服务器往返,并且仅通过窗口显示解密后的表值。

但是,如果你想能够通过相同的实体更新表;那么你不能。您必须通过表格映射进行更改 - 使用ID选择要更新的正确实体。

+0

其实,我最终找出了一个通过ExecuteCommand来完成的方法!我运行它来匹配包含在foreach循环中的ID ......所以它会匹配。查询看起来很棒。现在我的下一个问题是...(这太简单了,但是我有这种情况): 如何从ExecuteCommand返回结果的字符串值?我知道这将只是一个领域。 – napo 2012-02-07 04:47:53