したがって、アプリケーションにASPメンバシップが設定されています。私はまた、非会員関連データを管理するための別々のユーザーテーブルを持っています。ユーザー管理の際、私のアプリケーションが両方のテーブルを照会することを確認する必要があります。私は承認されたユーザのリストを返す以下のコントローラを持っていますが、これを達成するためのより簡単な方法が必要であるようです。それを行う良い方法は何ですか?MembershipUserCollectionによるユーザーテーブルのフィルタリング
QuoteExchangeDB _db = new QuoteExchangeDB();
[MyAuthorize(Roles = "Administrator")]
public ActionResult Admin()
{
MembershipUserCollection agents = Membership.GetAllUsers();
IEnumerable<MembershipUser> unfiltered = agents.Cast<MembershipUser>();
var filtered = unfiltered.Where(u => u.IsApproved);
List<User> users = new List<User>();
foreach (var item in filtered)
{
if (item.IsApproved)
{
Guid guid = (Guid)item.ProviderUserKey;
users.Add(_db.Users.Single(u => u.MembershipGuid.Equals(guid)));
}
}
return View(users);
}
'if(item.IsApproved)'ブロックは既にフィルタリングされているので、冗長であるようです。 –
Lol ...私はLinqステートメントを追加する前にifステートメントを実行しました...私はそれをキャッチしませんでした。今修正。 –