Вот сценарий:
У меня есть пользовательский элемент управления ASP.NET, который выполняет запрос LINQ, сохраняет результаты в общем списке, а затем динамически загружает другой пользовательский элемент управления (в заполнитель) и передает один изобъекты из Списка в элемент управления через свойство элемента.
Дочерний элемент управления отображает данные из объекта и позволяет пользователю изменять различные поля.Кнопка «Сохранить» на родительском элементе управления вызывает метод «SaveInput» на дочернем элементе управления, который обновляет свойства объекта на основе введенных данных (на этом этапе не было создано никакого DataContext).
Проблема заключается в том, что я могу 'Похоже, что для сохранения обновленного объекта используется метод SubmitChanges объекта DataContext.Вот что я попробовал:
Если я вызываю SubmitChanges из родительского элемента управления, он не распознает изменения, которые нужно сохранить, даже если вы изучаете исходный объект (всписок родительского элемента управления) он явно получил новые значения свойств.Я предполагаю, что это потому, что изменения не были сделаны через DataContext родительского элемента управления.
Если я пытаюсь (в коде родительского элемента управления) Присоединить объект к DataContext, я получаю ошибку, котораяон уже присоединен (ну, это так справедливо).
Если я создаю DataContext (в коде дочернего элемента управления), то пытаюсь присоединить к нему объект, я получаюошибка, что он уже присоединен к другому DataContext (опять же, это правда)
Поэтому мое неуклюжее решение состоит в том, чтобы создать DataContext (в коде дочернего элемента управления), а затем создать новый экземпляртип объекта, затем установите каждое свойство этого нового объекта из эквивалента измененного объекта, затем SubmitChanges.Не элегантно, но работает.
Есть ли лучший способ?