powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Объясните, как создать локальный change tracking?
14 сообщений из 14, страница 1 из 1
Объясните, как создать локальный change tracking?
    #36824536
Datar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть дабвсиэф сервис (или веб-служба, не важно), который через Linq2SQL вытаскивет шота и возвращает это шота как Enumerable<T>. Есть методы обновляющие это шота, ну в общем все по масадэне сделано как тута описано: ms-help://MS.MSDNQTR.v90.ru/wd_linqsql/html/c3133d53-83ed-4a4d-af8b-82edcf3831db.htm

Все прекрасно показывет, только не могу всосать, как мне энти шота на удаленном клиенте тракить на предмет чанджа, дабы опосля вернуть на дабвсиэф для апдэйта? То есть, юзвер например удалил одну шота, одну добавил и еще одну изменил. В DataSet это GetChanges, а тута шо?

Вот читаю значить масадэну: ms-help://MS.MSDNQTR.v90.ru/wd_linqsql/html/854a1cdd-53cb-45f5-83ca-63962a9b3598.htm
На рисунке в статье в презентатон лаере написЯно: Local change tracking *** no DataContext, а где взять этот Local change tracking или как релизовать ни слова. Как просты были DataSet, аж жуть как хочется вернутся, но мода берет свое.
...
Рейтинг: 0 / 0
Объясните, как создать локальный change tracking?
    #36824539
Datar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да еще, судя по примера из масадэны, на сервере для одного шота должны быть четыре (и более) метода: три на чэндж, остальные на выборку. То есть, если юзверь изменил тра шота, как в посте выше, ему нужно вызвать три разных метода для обновления всех шота. Объясните плиз, как это сделать в одной транзакции?
...
Рейтинг: 0 / 0
Объясните, как создать локальный change tracking?
    #36824548
Datar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У кого масадэна локально не установлена, вот рисунок
...
Рейтинг: 0 / 0
Объясните, как создать локальный change tracking?
    #36826432
Datar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Опа.. никто не пробовал редактровать коллекции Linq полученные от веб-службы в WinForms/WPF? Или DataSet и DataTable до сих пор остаются единственным нормальным средством для работы с отсоидененными данными?
...
Рейтинг: 0 / 0
Объясните, как создать локальный change tracking?
    #37008094
aster.x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Объясните, как создать локальный change tracking?
    #37008521
Datar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Яснее не стало, все что вы описали в "ответе" и так написано в msdn в приведеных ссылках. Интерсиует не теория, а реализация.
...
Рейтинг: 0 / 0
Объясните, как создать локальный change tracking?
    #37008522
Datar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aster.x, кароче, чтобы было понятно о чем спрашивал тогда: как реализовать этот самый локальный наблюдатель того, что изменилось в коллекции по налогии с GetGhanges от DataSet.
...
Рейтинг: 0 / 0
Объясните, как создать локальный change tracking?
    #37009690
aster.x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кароче, это ответ на "То есть, если юзверь изменил тра шота, как в посте выше, ему нужно вызвать три разных метода для обновления всех шота. Объясните плиз, как это сделать в одной транзакции?" и дополнительно к этому небольшое пояснение к справочной информации из msdn.

При такой схеме работы, когда дата-контекст находится на удаленном сервисе, на клиенте лучше изменения не накапливать, чтобы не пришлось возиться с их треканьем. В простых случаях клиент сам легко может распознать род изменения по непосредственному действию пользователя (например, юзер выполнял удаление некого "шота", - значит изменение - это удаление).

Если все-таки надо на удаленном клиенте обеспечить длительную автономность работы с данными, лучше поискать готовые либы. Хотя можно сделать и собственную прослойку-кэш.

DataSet и DataTable проблемы избежать не помогут, если архитектура будет такая же распределенная. То есть, если на сервисе будут находится датасеты/дататейблы, клиент отхватит в точности те же самые проблемы, что и с Linq2SQL.
...
Рейтинг: 0 / 0
Объясните, как создать локальный change tracking?
    #37009711
aster.x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще, настолько ли существенно в вашей задаче длительно хранить данные на клиенте, что аж прямо необходимо разрабатывать механизм треккинга изменений? Нельзя сразу по получении результата от пользователя сливать изменения на сервер?
...
Рейтинг: 0 / 0
Объясните, как создать локальный change tracking?
    #37011504
Datar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я понял концепцию, спасиба. То есть, как только в WPF форме пользователь поменял нечто сразу дергаем веб-службу и передаем данные. Но мне кажется это не очень хорошо, так как допустим пользователь поменял значение в одном столбце (свойстве класа) сразу передали, потом пользователь поменял другой столбец, опять передача. Так получается, на каждый чих?

DataSet и DataTable проблемы избежать не помогут, если архитектура будет такая же распределенная. То есть, если на сервисе будут находится датасеты/дататейблы, клиент отхватит в точности те же самые проблемы, что и с Linq2SQL.

Нет, я имел ввиду, DataSet на клиентах (на клиентах) накапливает изменения. На веб-службу отсылается только изменения, которые веб-служба фиксит. Собствено вот как, на службе генерятся типизированные DataSet, посредством которых данные возвращаются клиенту. Соответвено клиент через WSDL имеет эти же датасеты у себя (без табличных адаптеров) и может связывать с компонентами на вин-форме через bindingSource. С этим проблем нет, все прекрасно работает в WinForms и SOAP.

Теперь вот мода новая, WPF, WCF, Linq соответствено. И главная проблема стала в том, что не понятно как эти изменения накапливать на клиенте. Я думал есть готовое решение как в DataSet (кстати DataSet не только изменения передает, но еще и Original Value, что для решения оптимистического паралелизма очень хорошо на сервере).
...
Рейтинг: 0 / 0
Объясните, как создать локальный change tracking?
    #37011514
Datar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aster.xВообще, настолько ли существенно в вашей задаче длительно хранить данные на клиенте, что аж прямо необходимо разрабатывать механизм треккинга изменений? Нельзя сразу по получении результата от пользователя сливать изменения на сервер?

Модель примерно такая - форма с гридом и текстоксами, кнопка сохранить. По кнопке сохранить на сервер отправляются все изменения сделанные после открыти формы или предыдущего сохранения. ну модель собствено стандартная для всех приложений, ворд и эксель так же с документами работают.
...
Рейтинг: 0 / 0
Объясните, как создать локальный change tracking?
    #37017600
Datar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Идеи закончились?
...
Рейтинг: 0 / 0
Объясните, как создать локальный change tracking?
    #37017623
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для ручной работы - Castle Dynamic Proxy .
NHibernate может сделать это за вас.
...
Рейтинг: 0 / 0
Объясните, как создать локальный change tracking?
    #37018151
aster.x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В вышеуказанной ветке на gotdotnet.ru есть несколько ссылок. Посмотрите, может быть для вас что-нибудь окажется полезным.

Обратите внимание на WCF RIA Services.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Объясните, как создать локальный change tracking?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]