1

我以前曾问过这个问题,但我正在恢复它,因为我没有得到满意的答复。

我有一个配置文件变量,当我加载它时,它被分配了默认值。我需要检查它是否曾经被分配过。通常我会使用 is null 比较,但这不起作用。

有人建议我使用看起来落后的 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)

4

2 回答 2

0

只需设置一个代表的默认值null。例如,对于 int 字段,将默认值设置为 -1。

在我看来,您所描述的要求是一种极端情况,无论如何使用上述策略很容易实现。

我认为,您断言这是个人资料模型的疏忽或缺陷还为时过早。

祝你好运。

于 2010-07-18T00:47:18.003 回答
0

好吧,我很惊讶没有人遇到过这个问题:让我觉得我错过了一些基本的东西。我将为该组添加一个组和一个脏标志。如果有人可以提供另一种解决方案,我将给予答案。或者对象的脏标志..

于 2010-07-08T19:13:34.687 回答