我使用EF 4和會員供應商隨ASP.Net 4.0一起發貨。EF - 導航屬性說明
我需要查找特定角色中的所有用戶並使用List<ListItem>
填充DropDownList。
參與數據庫表:
aspnet_Roles
aspnet_Users
aspnet_UsersInRoles
導航屬性從aspnet_Users到aspnet_Roles(使用結表aspnet_UsersInRoles)是:
myUser.aspnet_Roles
匹配角色ID(GUID)「CE44ED48-E9F9-49C6-9E15 -E40EEFDC7479「)
我的腳本:
using (CmsConnectionStringEntityDataModel context = new CmsConnectionStringEntityDataModel())
{
IQueryable<aspnet_Users> userQuery = from aspnet_Users in context.aspnet_Users select aspnet_Users;
IQueryable<aspnet_Roles> roleQuery = from aspnet_Roles in context.aspnet_Roles select aspnet_Roles;
List<ListItem> myListUsersInRoles = new List<ListItem>();
foreach (aspnet_Users myUser in userQuery)
{
// PROBLEM HERE
if (myUser.aspnet_Roles.ToString() == "CE44ED48-E9F9-49C6-9E15-E40EEFDC7479")
myListUsersInRoles.Add(new ListItem(myUser.UserName.ToString(), myUser.UserId.ToString()));
uxListUsers.DataSource = myListUsersInRoles;
uxListUsers.DataBind();
}`
問題: 如果總是返回FALSE,所以我無法填充列表<>。 我想我做錯了,如果一些屬性。
你有什麼想法嗎?謝謝你的時間。
謝謝你的解釋。最後我明白它是如何工作的。我用if(myUser.aspnet_Roles.Any(r => r.RoleName ==「CMS-AUTHOR」)),它工作的很棒!我也會嘗試使用System.Web.Security作爲你的悲傷。非常感謝您的幫助! – GibboK 2011-02-01 12:05:31