1

使用 Entity Framework 5.0 和 MS SQL Server 2012。实现一些单元级加密功能。这需要一组特定的操作来成功加密/解密数据:

  1. 打开加密密钥(例如执行 OPEN SYMMETRIC KEY TSQL 命令)
  2. 执行以下 SELECT DECRYPTBYKEY(key_guid, encryptedDate) AS Something FROM SomeTable

问题是:在 Entity Framework 5.0 下,如何在与数据库建立新连接后立即运行 OPEN KEY 命令?打开密钥后,它将保持打开状态,直到此数据库会话处于活动状态。

谢谢

4

1 回答 1

0

也许您可以订阅连接的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.
    }
}
于 2013-04-19T23:59:32.340 回答