Проблема обновления LinqToSql при смене родителей - PullRequest
0 голосов
/ 21 сентября 2009

Я пытаюсь выполнить прямое обновление, используя LinqToSQL, и просто не могу заставить его работать.

Вот модель данных: есть timesheet_entry и customer . Один клиент имеет много timesheet_entries . Это простое отношение внешнего ключа.

Если я редактирую существующий timesheet_entry, я получаю исключение, если меняю customer_id.

Вот моя попытка кода. Может ли кто-нибудь помочь мне здесь?

        internal void CommitChangesToEntry(Timesheet_Entry entry)
        {

            Timesheet_Entry latest = (from e
                                      in m_dataContext.Timesheet_Entries
                                      where e.Timesheet_Entry_ID == entry.Timesheet_Entry_ID
                                      select e).First();


            latest.Entry_Start_DateTime = entry.Entry_Start_DateTime;
            latest.Entry_End_DateTime = entry.Entry_End_DateTime;
            latest.Task_Description = entry.Task_Description;

            // Comment out this line of code and it
            // doesn't throw an exception
            latest.Customer_ID = entry.Customer_ID;

            m_dataContext.SubmitChanges(); // This throws a NotSupportedException

        }

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

1 Ответ

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

Есть ли у вас причины не использовать метод Attach? Как следующее:

m_dataContext.Timesheet_Entries.Attach(entry);
m_dataContext.SubmitChanges();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...