我可以将一些带有加密列的新记录插入到我的表中(我使用始终加密功能)。 但是...我无法更新或删除行。
仅举一个例子:tbUtenti表的密码列已加密。该方法在插入中正确运行,但在更新中不正确。
我得到的例外是(从意大利语翻译):
列/变量“ @ p2”,“密码”的密码架构不匹配。列/变量的加密方案为(encryption_type ='RANDOMIZED',encryption_algorithm_name ='AEAD_AES_256_CBC_HMAC_SHA_256',column_encryption_key_name ='BISP_PK',column_encryption_key_database_name ='DEVDB'),而加密类型位于行'1'旁边'DETERMINISTIC')(或更低)。
我的方法如下:
public static bool SetUtente(tbUtenti ut){try
{
DBDesktopDataContext contesto = new DBDesktopDataContext(ConnectionString);
if (ut != null)
{
// update
tbUtenti utDB = contesto.tbUtentis.Where(u => u.Utente == ut.Utente).FirstOrDefault();
if (contesto.tbUtentis.Count() > 0 && utDB != null && utDB.Utente == ut.Utente)
{
utDB.AuthFacebook = ut.AuthFacebook;
utDB.AuthGoogle = ut.AuthGoogle;
utDB.IsAdmin = ut.IsAdmin;
utDB.Password = ut.Password;
contesto.SubmitChanges();
}
else
{
// insert new row (THIS WORKS!)
contesto.tbUtentis.InsertOnSubmit(ut);
contesto.SubmitChanges();
}
return true;
}
else
return false;
}
catch (Exception ex)
{ ...