2010-10-13 70 views
1

我們有一個由兩個不同的Silverlight應用程序使用的實體框架模型。驗證規則在兩種情況下非常相似,但略有不同。如何處理RIA服務中的不同驗證規則?

例如,其中一個應用程序中的普通用戶不能輸入將來的時間,但另一個應用程序中的管理員可以輸入將來的時間。

你將如何處理設計這個應用程序?兩個思路,我們提出了:

  1. 創建兩個完全獨立的模式,讓每個人都可以是獨立的
  2. 股份相同的模式,而是把「背景」屬性對我們的基本實體類,以便驗證規則可以在必要時進行不同的驗證。

回答

0

我從來沒有嘗試過,但根據用戶的授權角色,如何擴展或創建使用不同驗證的新驗證屬性呢?

+0

通過這樣做,您可以讓較低層知道UI或上層中正在進行的安全性。 但你讓我思考。也許一些依賴注入是有道理的。我不認爲有可能在屬性本身上做到這一點,但也許屬性可能只依賴於一個接口,由正在運行的應用程序確定的實現? – 2010-10-20 16:43:47

0

那些聽起來像業務規則,應該從數據訪問分離。您應該能夠使用相同的EDM,但在業務層中實現業務規則,而不是數據層。

+0

我同意這個想法。但是,工具都是圍繞這樣的想法構建的,即屬性或實體級驗證是作爲實體上的屬性或其元數據「好友類」完成的。 Buddy類是部分類,它們要求它們與實體類位於同一個程序集中。 你有其他方法可以完成此任何信息? – 2010-10-20 16:31:30