使用实体框架5.0,MS SQL Server 2012。实现一些单元级加密功能。这需要一组特定的操作来成功加密/解密数据:
- 打开加密密钥(例如执行Open SYMMETRIC key TSQL命令)
- 执行如下SELECT DECRYPTBYKEY(key_guid, encryptedDate) AS Something FROM SomeTable
问题是:如何,在实体框架5.0下,我可以运行OPEN KEY命令后,新的连接到一个数据库建立?在键被打开后,它将保持打开状态,直到该数据库会话处于活动状态。
谢谢
也许您可以订阅连接的StateChange
事件:
this.Database.Connection.StateChange += this.Connection_StateChange;
// "this" is the DbContext.
private void Connection_StateChange(object sender, StateChangeEventArgs e)
{
if(e.CurrentState == ConnectionState.Open)
{
// your commands here using sender as SqlConnection.
}
}