Очень странное поведение с Linq для SQL и MVC - PullRequest
0 голосов
/ 13 июля 2010

У меня есть действие, требующее аутентификации.Метод действия создает некоторые записи с внешними ключами, используя Linq to SQL.Когда пользователь вызывает действие и вошел в систему, метод работает без проблем.Когда пользователь не вошел в систему, MVC перенаправляет его на страницу входа с параметром returnUrl.После успешного входа в систему метод действия выполняется, но на этот раз он выдает следующую ошибку:

Была предпринята попытка присоединить или добавить не новый объект, возможно, загруженный из другого объекта.DataContext.Это не поддерживается.

Во всех запросах используется один и тот же текст данных и один и тот же запрос.

Код проходит по одному и тому же пути выполнения в обоих сценариях, поэтому я искренне этого не делаюпонять, что происходит и почему?Кто-нибудь знает, почему это произойдет?

1 Ответ

0 голосов
/ 13 июля 2010

Я обнаружил проблему!

Метод действия извлекал некоторые сущности, используя глобальный текстовый текст, а затем вызывал свойство User базового контроллера, который получает объект User из сеанса.Поскольку это был первый раз, когда он получал его после аутентификации пользователя, он вызывал мой метод GetCustomerWithCustomerInfo ().Этот метод действительно (по какой-то причине) снова создавал глобальный текстовый констант данных, и, следовательно, он делал все предыдущие извлеченные сущности сиротами, что объясняет, почему я получил ошибку выше.Это также объясняет, почему я не получаю сообщение об ошибке, когда пользователь ранее вошел в систему. Объект User извлекался из сеанса, и поэтому контекст не создавался.

Я не хотел включать кодпотому что это было слишком сложно, и я не мог сузить его.

Я думаю, что в следующий раз, когда я получу эту ошибку, я должен действительно доверять ей.

Теперь мне нужно выяснить, почему создание GetCustomerWithCustomerInfo создаетновый текстовый текст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...