簡體   English   中英

C# 實體框架 - 基礎 class 計算

[英]C# Entity Framework - base class computation

在我們的 C# 代碼中,我們使用的是實體框架。 我們表中的一列是加密的,我們希望在數據顯示在用戶界面之前對其進行解密和加密。

我認為,選項是在每次調用實體框架之前加密或解密字符串,這是非常低效的。

有人可以建議:

  1. 如果有一些選項可以在基本實體 class 本身中編寫 function 包裝器,在 get 或 set 方法中,在讀取和寫入期間將在哪里調用此加密解密函數?
  2. 或者,我們可以在 SQL 級別做些什么。

本質上,我們不想在每次實體框架調用之前編寫代碼,而是希望在某個中心位置執行此操作。

如果我理解正確,您有一個表(實體),其中有一些加密列。 我想你已經有了 Encrypt 和 Decrypt 函數,所以我們就這么稱呼它們吧。

您的代碼應該/可能看起來像這樣

public class Entity
{
   // this corresponds exactly to column in database
   public string ColumnRawValue
   {
       get;
       private set;
   }

   // this is the abstraction you were asking for
   public string ColumnValue
   {
      get => Decrypt(this.ColumnRawValue);
      set => this.ColumnRawValue = Encrypt(value);
   }
}

當然你的代碼不應該和我的完全一樣,但我希望你明白重點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM