Я включаю DotNetOpenAuth на мой сайт asp.net. Я новичок в инфраструктуре Entity. Database.DataContext.AddToUser (пользователь), расположенный в LogingFrame.aspx.cs, не добавляет пользователя в базу данных. Пользователь и аутентификация. Записи заполняются правильно. Тот же код из проекта шаблона, который указывает на одну и ту же базу данных, отлично работает. Вероятно, я пропустил что-то во время регистрации. Не могли бы вы указать, что я должен проверить? Пожалуйста, дайте мне знать, если вам нужен какой-либо код.DotNetOpenAuth - Database.DataContext.AddToUser (пользователь) не работает
ответ
... не добавляет пользователя в базу данных. Пользователь и аутентификация. Записи заполняются правильно.
Ваш вопрос, кажется, противоречит самому себе, или я читаю его неправильно. Похоже, вы говорите, что пользователь не добавлен, но затем добавляется пользователь.
Позвольте мне взять у него удар, и вы узнаете, как работает этот шаблон проекта. Транзакция базы данных обертывает все изменения базы данных в рамках одного HTTP-запроса. Он встроен в сборку RelyingPartyLogic, чтобы иметь такое поведение. Кроме того, в конце успешного HTTP-запроса (который не привел к необработанному исключению) вызывается SaveChanges() и транзакция совершена. Если генерируется необработанное исключение, изменения и транзакция откатываются назад. Это помогает защитить целостность вашей базы данных.
Побочный эффект от этого, однако, заключается в том, что если вы отлаживаете метод «добавить пользователя», и после того, как вы увидите выполненный вами AddToUser
, вы переходите к таблице пользователей, чтобы узнать, добавлено ли оно, t, потому что SaveChanges еще не был вызван и транзакция еще не выполнена.
Для стандартного поведения платформы Entity Framework необходимо сохранить вызовы SaveChanges, чтобы ваши изменения сохранялись в базе данных, но, как я уже говорил, библиотека RelyingPartyLogic выполняет этот вызов для вас. Но иногда вам может потребоваться самостоятельно вызвать SaveChanges в вашем собственном коде, чтобы (например) получить идентификатор недавно добавленной строки. Это работает даже в рамках транзакции, прежде чем совершать ее.
Надеюсь, что это поможет.
Вы забыли позвонить в DataContext.SaveChanges()?
- 1. DotNetOpenAuth ReturnToUrl не работает
- 2. DotNetOpenAuth - Nerddinner.com - Не работает
- 3. DotNetOpenAuth не работает с MVC 5 RC
- 4. DotNetOpenAuth - OnLoggedIn не работает на OpenIdButton
- 5. DotNetOpenAuth RP не работает с SSL-аппаратом
- 6. DotNetOpenAuth в MVC4 - Yahoo не работает
- 7. DotNetOpenAuth entityframework
- 8. instafeed.js пользователь не работает
- 9. Мобильный пользователь не работает
- 10. вход Пользователь не работает
- 11. Django Пользователь не работает
- 12. Пользователь не работает
- 13. DotNetOpenAuth autopostback
- 14. DotNetOpenAuth: WebForms Приступаем
- 15. DotNetOpenAuth Запомнить меня
- 16. DotNetOpenAuth Кнопка «Выход»
- 17. DotNetOpenAuth и FormsAuthentication
- 18. DotNetOpenAuth OnLoggedIn никогда не запускается
- 19. DotNetOpenAuth RelayParty не работает с балансированным весом кластером
- 20. DotNetOpenAuth & MvcOpenID - Работает локально, но не на рабочем сервере?
- 21. dotnetOpenAuth не работает при ошибке протокола. Это ServiceProviderDescription от TokenManager?
- 22. OpenID не работает с DotNetOpenAuth после обновления до ver4
- 23. Поставщик DotNetOpenAuth не работает в ie11 на https
- 24. DotNetOpenAuth аутентификации
- 25. Компиляция DotNetOpenAuth
- 26. Facebook и dotnetopenauth issue
- 27. DotNetOpenAuth Запрос статуса aspNet status_update
- 28. Django обновление пользователь не работает
- 29. Пользователь Редактировать Ресурс не работает
- 30. Проверьте, не работает ли пользователь
Хорошо проверить, как правило, но не обязательно для шаблона проекта, так как он автоматически вызывает SaveChanges для пользователя по завершении HTTP-запроса. –