5

我正在使用 ASP.NET MVC 1,并且使用 WebProfile Builder VS 加载项添加了一个自定义 Profile 类(可在此处找到:http ://code.msdn.microsoft.com/WebProfileBuilder/Release/ProjectReleases.aspx?ReleaseId =980)。

在我的一个表单上,我想要一个共享特定配置文件值的所有用户的下拉列表。

我可以看到我可以使用以下方式获取所有用户的列表:

Membership.GetAllUsers()

但是我看不到如何获取具有特定配置文件值的所有用户,在我的例子中是 CellId。

我是否以正确的方式处理这个问题?我已经使用成员角色来定义哪些用户是管理员等,但配置文件似乎是对用户进行分组的正确位置。

任何关于如何访问用户列表的细节以及关于我是否在这里追求正确途径的评论都将不胜感激。

非常感谢,山姆

4

2 回答 2

3

Profile 没有查询 API,但这可能会给您一些指导:

var usersWithNonZeroCounter = Membership.GetAllUsers().Cast<MembershipUser>()
    .Where(user => true /*insert your user criteria here*/)
    .Select(user => ProfileBase.Create(user.UserName, true))
    .Where(profile => ((int)profile["counter"]) > 0 /*insert your profile criteria here*/)
    .ToList();
于 2010-05-02T00:42:44.840 回答
1

如果您只需要一个比较,您可以使用以下语句:

return Membership.GetAllUsers().Cast<MembershipUser>()
        .Where(user => ((int)ProfileBase.Create(user.UserName, true)["Owner"]) == _ownerid);

如果您需要更多评估,为什么不使用let运算符来存储配置文件。

于 2011-09-12T12:20:49.037 回答