![]() |
|
Модераторы: gambit |
![]()
|
|
| Veitmen |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 10.11.2006 Где: СПБ Репутация: нет Всего: 4 |
Всем привет. Решил попробовать связать грид с данными через ObjectDataSource. БД Northwind таблица Customers, Orders, Order_Details. Класс с маппингом для Customer сгенерил стандартный дизайнер. Ничего более не менял.
Итак класс родитель для всех Linq to sql classes:
partial классы:
И само собой разметка :
Проблема в том что когда я редактирую Customers весь код отлично выполняется, но изменения в бд не записываются. В чем проблема может быть? Где я что делаю не так? |
||||||
|
|||||||
| Veitmen |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 10.11.2006 Где: СПБ Репутация: нет Всего: 4 |
Разобрался. Я упустил тот факт что когда мы просто аттачим объект, то подразумевается что мы его еще не редактировали, т.е. редактировать объект стоит только после аттача (когда объект уже в контексте). Такой вариант не подходит для данной задачи.
Для того что бы решить эту задачу следует использовать метод Attach(entity, true). Второй параметр говорит о том что объект изменен вне контекста и следует произвести Update в бд. Что бы этот метод работал у сущности Linq должно быть поле отслеживающее версию объекта. Я в качестве версии пометил поля которые являются PK. Возникает вопрос, версия у меня не будет меняться при изменении объекта в БД,Какие последствия будут в результате такого действия? P.S.: На блокировки мне фиолетово пока. Добавлено @ 12:58 Короче понятно. Просто напросто будет работать схема: кто последний тот и прав. Никаких блокировок при этом нет... Это сообщение отредактировал(а) Veitmen - 13.3.2009, 12:58 |
|||
|
||||
| PashaPash |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 4 Всего: 49 |
Veitmen, поле версии - это обычно TimeStamp. Ровный способ сделать "кто последний тот и прав" - выставить UpdateCheck="Never" у всех полей.
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | LINQ (Language-Integrated Query) | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |