2015-08-20 79 views
0

我正在使用數據庫優先EF模型,並使用breezeJs進行客戶端數據管理。隱藏EF生成的實體類的某些屬性

比方說,我有一個表[用戶]在我的數據庫中,一個名爲'AccessCode'的字段。我想通過微風將用戶對象公開給客戶端,但不想公開AccessCode屬性。據我所知,我有以下選擇:

  1. 使EF生成的實體類 的AccessCode屬性內部。
  2. 創建DTO並全部訪問AccessCode屬性。 DTO是 暴露給客戶端。

由於我們應該能夠直接從客戶端添加/修改用戶對象,所以第二個選項不適用於微風。

第一個選項有什麼問題嗎?我擔心的是,如果我們將財產置於內部,那麼在下次模型更新時,更改將被消除。我知道如果我們想要強制驗證,我們可以對實體類使用部分類,但是我們不能在這裏做。

在這裏實現數據隱藏的最佳方式是什麼?

回答

0

當你想隱藏來自不同圖層的數據時,DTO幾乎總是正確的答案。

+0

第一個選項有什麼問題嗎?如果我可以找出處理模型更新的方法,這似乎很乾淨。 – devC

+0

事實是,每次更新模型時,都需要手動執行一個步驟。這不是如果你忘記那一步,而是什麼時候。 – cadrell0