我正在使用ASP.NET MVC 1,并且我使用WebProfile Builder VS加载项添加了一个自定义Profile类(在此处找到:http://code.msdn.microsoft.com/WebProfileBuilder/Release/ProjectReleases.aspx?ReleaseId=980)。
在我的某个表单上,我想要一个共享特定配置文件值的所有用户的下拉列表。
我可以看到我可以使用以下命令获取所有用户的列表:
Membership.GetAllUsers()
但是我无法看到如何让所有具有特定配置文件值的用户,在我的情况下是CellId。
我是以正确的方式接近这个吗?我使用了成员资格角色来定义哪些用户是管理员等,但是配置文件似乎是分组用户的正确位置。
任何有关如何访问用户列表的详细信息,以及关于我是否在这里寻求正确途径的评论都将非常感激。
非常感谢, 萨姆
答案 0 :(得分: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();
答案 1 :(得分:1)
如果您只需要一次比较,可以使用以下声明:
return Membership.GetAllUsers().Cast<MembershipUser>()
.Where(user => ((int)ProfileBase.Create(user.UserName, true)["Owner"]) == _ownerid);
如果您需要更多评估,为什么不使用 let 运算符来存储配置文件。