System.Web.Security.Membership は、すぐに使用できるいくつかの検索方法を実装しています。
- FindUsersByEmail
- FindUsersByName
CodePlex の WSAT プロジェクトを使用して、メンバーシップ データベースを管理しています。このツールは、ProfileCommon クラスに追加のプロファイル プロパティを実装します。
ユーザーのプロファイルにFirmというプロパティがあるとします。
Firm プロパティを検索するためのカスタム検索メソッドを実装する必要があり、これをすべてコードで実行したいと考えています。ストアド プロシージャを記述したくない (すべてのプロファイル プロパティが WSAT ツールの 1 つのデータベース列に格納されるため)。
このようなことは明らかに正しい方法ではありませんが、ここではユーザーのプロファイル プロパティへのアクセスを示すだけです。
private MembershipUserCollection SearchByFirm(string firmName, MembershipUserCollection allRegisteredUsers)
{
MembershipUserCollection searchResults = new MembershipUserCollection();
foreach (MembershipUser user in allRegisteredUsers)
{
ProfileCommon profile = Profile.GetProfile(user.UserName);
if (profile.Firm.ToLowerInvariant().Contains(firmName.ToLowerInvariant()))
{
searchResults.Add(user);
}
}
return searchResults;
}
これを LINQ の利点に変えることはできますか?