2010-04-28 6 views
0

Мы используем провайдер профилей asp.net в нашем приложении, и мне нужно обновить одно конкретное свойство для большинства наших пользователей. У кого-нибудь есть консольное приложение или пример кода? Мы не сохраняем свойства в строчном формате. Этот двоичный поток находится в таблице aspnet_Profile.Нужен быстрый способ массового обновления PropertyValuesBinary поля для всех пользователей

спасибо, л.с.

ответ

1

Вы можете сделать что-то вроде этого довольно легко:

Membership.GetAllUsers().Cast<MembershipUser>() 
    .Where(u => true /*insert your criteria here*/) 
    .ToList().ForEach(user => 
    { 
     var p = ProfileBase.Create(user.UserName, true); 

     // do whatever you want to the profile here 
     int counter = (int)p["Counter"]; 
     counter++; 
     p["Counter"] = counter; 

     p.Save(); 
    }); 

Приведенный выше код будет работать как есть в любом обработчике вашего сайта, но если вы хотите, чтобы это сделать с консольным приложением, просто скопируйте раздел <system.web> с вашего web.config на app.config приложения консоли.

нюанс: если вы используете строку соединения с провайдером по умолчанию, localSqlServer, вам нужно будет создать новую строку подключения явно указывающий на .mdf, как только веб-приложения имеют понятие DATADIRECTORY (App_Data).

Смежные вопросы