有什麼辦法,我們可以使用的DbCommand和AddInParameter同時通過.NET將始終加密列到表?我們可以使用的DbCommand和AddInParameter同時插入總是加密列
db.AddInParameter(的DbCommand, 「@SSN」,DbType.string,SSN);
有什麼辦法,我們可以使用的DbCommand和AddInParameter同時通過.NET將始終加密列到表?我們可以使用的DbCommand和AddInParameter同時插入總是加密列
db.AddInParameter(的DbCommand, 「@SSN」,DbType.string,SSN);
關於.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);
感謝威廉,但現有的代碼中使用的企業級磁帶庫廣泛,現在我們不希望改變整個代碼只是加密。有沒有辦法使它始終加密列與企業庫一起工作? – Windows10
的SqlParameter從繼承的DbParameter。所以它應該工作。另外,看起來你可以將一個SqlParameter傳遞給db命令。儘管你應該測試一下。我編輯了我的答案。 –