2010-07-08 52 views
1

我已經問過這個,但我正在復活它,因爲我沒有得到滿意的答覆。如何確定是否曾經設置過配置文件數據成員?

我有一個配置文件變量,當我加載它時,它被分配默認值。我需要檢查是否曾經分配過。通常我會使用一個爲空的比較,但不會工作。

有人建議我使用FindProfilesByUserName這看起來倒退。無論這種方法不會工作,因爲它只告訴我用戶是否創建了任何配置文件,但不會爲我感興趣的特定成員數據。(這似乎是倒退,因爲配置文件的整個目的是爲了方便訪問當前的用戶配置文件數據,這似乎是一個糟糕的設計,除非我錯過了某些東西)

我看到的最後一個選項是將位分配給每個對象,看它們是否被弄髒或設置。我不想這樣做,除非需要。

這裏是FindProfilesByUserName樣本:

ProfileInfoCollection profileInfo = ProfileManager.FindProfilesByUserName(ProfileAuthenticationOption.All, Membership.GetUser().UserName); 
     if (profileInfo.Count > 0) 
     { 
      if (profileInfo[Membership.GetUser().UserName] != null) 

最後一個想法我已經是存儲集合,因爲我覺得我讀過他們是空。在我的情況下,我並不需要一個集合,但這可能是最簡單的解決方案。期待建議..我覺得我必須在這件事上失去一些明顯的東西。

要清楚

這不起作用(如果http.context.profile.mydata!= NULL)

+2

你能否指出另一篇文章?這可能有助於避免類似的,顯然不令人滿意的答案。 – XIII 2010-07-08 18:29:29

+0

http://stackoverflow.com/questions/3169164/profiles-content-check-if-set – 2010-07-08 19:01:32

回答

0

好吧,我很驚訝,沒有人遇到過這個問題:讓我想到我缺少一些基本的東西。我將爲該組添加一個組和一個髒標誌。如果任何人都可以提供另一種解決方案,我會給出答案的功勞。或對象髒污。

0

只需設置代表null的默認值即可。例如對於int字段,將缺省值設置爲-1。

在我看來,您所描述的要求是一個邊緣案例,無論如何都可以使用上述策略輕鬆實現。

我認爲,你認爲這是一個簡介模型的疏忽或缺點是不成熟的。

祝你好運。

+0

這是一個相當大的疏忽,因爲它強制要存儲任何對象/類的非必要模型。當然,有修復。 – 2010-07-19 14:30:01

相關問題