在建立到DB的新连接后,需要执行特定的TSQL命令.所有都在EF5.0(模型优先)下



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

  1. 打开加密密钥(例如执行Open SYMMETRIC key TSQL命令)
  2. 执行如下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.
    }
}

最新更新