Я пытаюсь обновить запись db с помощью linq to sql
Сначала я запрошу его
MyObject obj = (from o in objRepository.List where(o.ID == id) select i).SingleOrDefault();
то я пытаюсь обновить и изменить данные
obj.Name = "some value"
dataContext.Attach(obj)
dataContext.Context.Refresh(RefreshMode.KeepCurrentValues, obj);
Я получаю InvalidOperationException
в строке, где прикреплен контент.
В нем говорится, что его невозможно прикрепить Сущность, которая уже существует.
Кто-нибудь может мне помочь? Спасибо.
Любой объект, обновленный с LINQ to SQL, автоматически известен, поэтому, если вы получаете объект из репозитория, и он знает о контексте данных, его не нужно прикреплять. Вы можете просто подписать() с контекстом данных, и эти изменения будут обновлены в базе данных.
Поэтому, когда вы запрашиваете из контекста данных, как только свойство изменяет свое значение, контекст данных уже знает об изменении, а вызов SubmitChanges() подталкивает его в БД и обновляет ссылки на эти объекты (так что вы может сверлить).