Я использую ASP.NET DynamicData (на основе LINQ to SQL) на моем сайте для базовых строительных лесов. На одной таблице я добавил дополнительные свойства, которые не хранятся в таблице, а извлекаются из другого места. (Профильная информация для учетной записи пользователя, в данном случае).ASP.NET DynamicData: что происходит во время обновления?
Они отображаются очень хорошо, но при редактировании этих значений и нажатии «Обновить» они не изменяются.
Вот что свойство выглядеть таблица является стандартной aspnet_Users стола:
public String Address
{
get
{
UserProfile profile = UserProfile.GetUserProfile(UserName);
return profile.Address;
}
set
{
UserProfile profile = UserProfile.GetUserProfile(UserName);
profile.Address = value;
profile.Save();
}
}
Когда я запустил отладчик, я заметил, что для каждого обновления set
аксессора называется три раза. Один раз с новым значением, но только в новом экземпляре пользователя, затем один раз со старым значением, снова в новом экземпляре и, наконец, со старым значением существующего экземпляра.
Чувствуя себя немного, я проверил свойства, созданные дизайнером, и они тоже называются три раза (почти) одинаково. Единственное отличие состоит в том, что последний вызов содержит новое значение для свойства.
Я немного запятнал здесь. Почему три раза, и почему мои новые свойства ведут себя по-другому? Я был бы благодарен за любую помощь в этом отношении! =)
Спасибо! Я пошел с вариантом 1 здесь, хотя писать собственный провайдер профиля наверняка будет лучшим способом. – Jens