私は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
マッチングRoleID(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();
}`
問題: IFは常にFALSEを返しますので、リスト<を設定することはできません。 私はいくつかのプロパティが間違っていると思います。
ご意見はありますか?御時間ありがとうございます。
ありがとうございます。最後に、どのように動作するのか理解しました。私はif(myUser.aspnet_Roles.Any(r => r.RoleName == "CMS-AUTHOR"))を使用して、素晴らしい作業をしています!私はあなたも悲しいようにSystem.Web.Securityを使って試してみるでしょう。あなたの助けをもう一度ありがとう! – GibboK
申し訳ありませんJohnさん、最後のことは...あなたにIQueryableの一般的な使用例を教えてください。私は本当に初心者です。ありがとう! – GibboK