Я только что обновил один из методов моего приложения для использования скомпилированных запросов (не уверен, что это актуально). Теперь я получаю противоречивые сообщения об ошибках при запуске кода.
Это мой метод:
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, из которого я ее получил?