Невозможно удалить запись по текстовому тексту, из которого она была получена - PullRequest
1 голос
/ 17 сентября 2009

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

Это мой метод:

MyClass existing = Queries.MyStaticCompiledQuery(MyRequestScopedDataContext, param1, param2).SingleOrDefault();

if (existing != null)
{
    MyRequestScopedDataContext.MyClasses.DeleteOnSubmit(existing);
}

Когда я запускаю его, я получаю это сообщение:

Невозможно удалить объект, который не имеет был прикреплен.

Обратите внимание, что скомпилированный запрос и DeleteOnSubmit ссылаются на один и тот же DataContext. Тем не менее, я решил, что буду смешно обращаться с приложением и добавить команду присоединения перед DeleteOnSubmit, вот так:

MyClass existing = Queries.MyStaticCompiledQuery(MyRequestScopedDataContext, param1, param2).SingleOrDefault();

if (existing != null)
{
    MyRequestScopedDataContext.MyClasses.Attach(existing);
    MyRequestScopedDataContext.MyClasses.DeleteOnSubmit(existing);
}

НО ... Когда я запускаю этот код, я получаю совершенно другое противоречивое сообщение об ошибке:

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

Я в полной растерянности ...

Кто-нибудь еще знает, почему я не могу удалить запись через тот же DataContext, из которого я ее получил?

1 Ответ

0 голосов
/ 17 сентября 2009

Ну, статический контекст данных уже звучит как потенциальная проблема (в частности, многопоточность, но также устаревшие объекты и утилизация). Моя непосредственная мысль: включено ли отслеживание объектов? Не уверен, если это необходимо, но, безусловно, один, чтобы рассмотреть.

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