
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
15.07.2009, 09:33
|
|||
|---|---|---|---|
Удаление из подчиненной таблицы вызывает ошибку сохранения??? |
|||
|
#18+
Дано: Две таблицы: Order - Details На форме (vb.net) два DataGridView Данные загружаются командой: Код: plaintext 1. Добавление новых строк, редактирование и удаление из основной таблицы проходит на ура. (Т.е. каскадное удаление работает) Редактирование и добавление в details тоже работает. Но удаление из details при последующем сохранении генерирует ошибку: Код: plaintext 1. 2. Вопрос: как лечить и куда смотреть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.07.2009, 17:28
|
|||
|---|---|---|---|
Удаление из подчиненной таблицы вызывает ошибку сохранения??? |
|||
|
#18+
Вы с LINQ to SQL работаете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.07.2009, 12:42
|
|||
|---|---|---|---|
Удаление из подчиненной таблицы вызывает ошибку сохранения??? |
|||
|
#18+
Entity Framework ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.07.2009, 08:25
|
|||
|---|---|---|---|
Удаление из подчиненной таблицы вызывает ошибку сохранения??? |
|||
|
#18+
Сам спросил - сам и отвечу. Вдруг кому пригодится: 1. В разделе: <!-- CSDL content --> надо на связь установить каскадное удаление. Примерно так: Код: plaintext 1. 2. 3. 4. 2. В DataGridView на обработчик события DeletingRow вписать чтото вроде: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.07.2009, 15:01
|
|||
|---|---|---|---|
Удаление из подчиненной таблицы вызывает ошибку сохранения??? |
|||
|
#18+
Дмитрий16, Думаю более правильнее "создавать каскадное удаление" в базе данных, а не в "Разделе...", т.к. я сомниваюсь что ЕФ за всеми связанными сущностями уследит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.07.2009, 13:29
|
|||
|---|---|---|---|
Удаление из подчиненной таблицы вызывает ошибку сохранения??? |
|||
|
#18+
_Thor_, Там все гораздо хитрее. В базе то каскадное само собой везде используется. А вот каскадное в моделе тоже нужно но с огромными оговорками. Тут самое главное - это то, что в модель могут быть загружены не все дочерние записи и при попытке удалить если полагаться только на каскадное удаление EF то можно получить ошибку. P.S. кстати. я почему то думал, что если указать в моделе каскадное удаление, то вместо явного удаления всех дочерних записей EF поймет, что достаточно удалить только одну родительску запись. Так вот так не получается... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. После команды DeleteObject(o) при записи изменений в базу проходит сперва два удаления для дочерних записей, затем одно для родительской. Вывод. EF как-то вяло использует информацию о наличии в базе каскадных удалений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.07.2009, 07:34
|
|||
|---|---|---|---|
Удаление из подчиненной таблицы вызывает ошибку сохранения??? |
|||
|
#18+
А он её вообще не использует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.07.2009, 16:25
|
|||
|---|---|---|---|
Удаление из подчиненной таблицы вызывает ошибку сохранения??? |
|||
|
#18+
Дмитрий16, Мда, странное поведение ЕФ в приведённом вами примере. Интересно, чем бы дядя Бил аргументировал такой факт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=17&mobile=1&tid=1351729]: |
0ms |
get settings: |
5ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
23ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 308ms |

| 0 / 0 |
