2010-07-08 1 views
1

J'ai posé cette question mais je ressuscite parce que je n'ai pas obtenu une réponse satisfaisante.Comment déterminer si un membre de données de profil n'a jamais été mis en?

J'ai une variable de profil, et quand je le charge alors il est attribué des valeurs par défaut. Je dois vérifier pour voir si elle a déjà été assignée. Typiquement j'utiliserais une comparaison est nulle mais cela ne fonctionnera pas.

Il a été suggéré d'utiliser la FindProfilesByUserName qui semble en arrière. Quelle que soit cette méthode ne fonctionnera pas comme il me dit que si l'utilisateur a tout profil créé, mais pas pour les données de membre spécifique Je suis intéressé. (Il semble en arrière puisque le but des profils était de le rendre facile d'accéder à la Cela ressemble à un mauvais design à moins qu'il me manque quelque chose.)

La dernière option que je peux voir est d'assigner des bits à chaque objet pour voir s'ils ont été salis ou mis. Je ne veux pas faire cela sauf si nécessaire.

Voici l'exemple de FindProfilesByUserName:

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

Une dernière idée que j'ai eu est le stockage des collections parce que je pense que je l'ai lu, ils sont annulable. Dans mon cas, je n'ai pas vraiment besoin d'une collection mais cela pourrait être la solution la plus simple. Réjouissez-vous de suggestions .. Je me sens comme je dois manquer quelque chose d'évident à ce sujet.

Pour être clair

cela ne fonctionne pas (si http.context.profile.mydata! = Null)

+2

Pourriez-vous également signaler cet autre article? Cela pourrait aider à ne pas obtenir des réponses similaires, apparemment insatisfaisantes. – XIII

+0

http://stackoverflow.com/questions/3169164/profiles-content-check-if-set –

Répondre

0

D'accord, je suis surpris que personne n'a connu ce problème: me fait penser que je Il me manque quelque chose de basique. Je vais ajouter un groupe et un drapeau sale pour le groupe. Si quelqu'un peut fournir une autre solution, je donnerai crédit pour la réponse. Ou un drapeau salie à l'objet ..

0

Définissez une valeur par défaut qui représente null. par exemple. pour un champ int, définissez la valeur par défaut sur -1.

L'exigence que vous décrivez est, à mon avis, un cas limite et dans tous les cas est facilement remplie en utilisant la stratégie décrite ci-dessus.

Votre affirmation qu'il s'agit d'un oubli ou d'un défaut du modèle de profil est prématuré, je pense.

Bonne chance.

+0

Il s'agit d'un oubli assez important car il force un modèle non nécessaire sur les objets/classes que vous souhaitez stocker. Bien sûr, il y a des correctifs. –

Questions connexes