2017-04-10 103 views

回答

0

關於.NET Framework數據提供如何處理這一點 - 有什麼你如果底層對象是SqlParameter的做專。在這個

更多細節: Develop using Always Encrypted with .NET Framework Data Provider

.NET Framework數據提供程序的SQL Server會自動檢測 和加密是針對加密列參數。

我假設你正在使用的企業庫。綜觀AddInParameter方法 - 它在內部創建的DbParameter和SqlParamter從繼承的DbParameter。似乎相同的規則適用於你的情況。這就是說,你可能想重新考慮使用企業庫來支持直接的ADO.NET,Entity Framework或像Dapper這樣的微型ORM。據我所知,企業圖書館不是一個活躍的項目/正在維護。

編輯

似乎可以傳遞的SqlParameter到的DbCommand。

例(未測試)

  DatabaseProviderFactory factory = new DatabaseProviderFactory(); 
      Database db = factory.CreateDefault(); 

      var dbCommand = db.GetStoredProcCommand("spINSERT"); 
      SqlParameter p = new SqlParameter("xxxxxx", "yyyyyy") {SqlDbType = SqlDbType.VarChar}; 
      dbCommand.Parameters.Add(p); 
      db.ExecuteNonQuery(dbCommand); 
+0

感謝威廉,但現有的代碼中使用的企業級磁帶庫廣泛,現在我們不希望改變整個代碼只是加密。有沒有辦法使它始終加密列與企業庫一起工作? – Windows10

+0

的SqlParameter從繼承的DbParameter。所以它應該工作。另外,看起來你可以將一個SqlParameter傳遞給db命令。儘管你應該測試一下。我編輯了我的答案。 –

相關問題