Из коробки System.Web.Security.Membership реализует несколько методов поиска:
- FindUsersByEmail
- FindUsersByName
Я использую проект WSAT от CodePlex для администрирования моей базы данных Членства. Инструмент реализует дополнительные свойства профиля в классе ProfileCommon.
Допустим, у меня есть свойство с именем Фирма в профиле пользователя.
Мне нужно реализовать собственный метод поиска для поиска по свойству Firm, и я хотел бы сделать все это в коде. Не хочу писать хранимую процедуру (поскольку все свойства профиля хранятся в 1 столбце базы данных в инструменте WSAT).
Что-то вроде этого, очевидно, не является правильным способом сделать это, но здесь это просто для демонстрации доступа к свойствам профиля пользователя:
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?