![]() |
|
Модераторы: gambit |
![]()
|
|
| Red Wind |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 280 Регистрация: 25.6.2004 Где: Минск Репутация: нет Всего: 2 |
К сожалению, LINQ to SQL не поддерживает каскадное удаление. Но я уверен что есть различные best practice по удаленю связанных объектов используя эту технологию. Что вы можете посоветовть?
Первое что приходит в голову это использование ON DELETE CASCADE во внешних ключах бд. Или ещё, используя reflection, можно написать нейкий метод который будет проходить по связанным объектам и удалять их. P.S. Не судите строго, первый день изучаю LINQ to SQL:) |
|||
|
||||
| akolesni |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 12.6.2006 Репутация: нет Всего: нет |
Я всё удаляю вызовом процедур на DataContext с базы данных(MS SQL)
|
|||
|
||||
| Red Wind |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 280 Регистрация: 25.6.2004 Где: Минск Репутация: нет Всего: 2 |
akolesni, и что конкретно делают эти процедуры?
Хотя, имхо, если для работы с бд используется ORM, то дополнительно юзать хранимые процедуры не правильно. |
|||
|
||||
| Idsa |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 5 Всего: 62 |
Red Wind, Entity Framework поддерживает каскадное удаление на уровне модели. Однако это позволяет лишь каскадно удалить данные из кэша и не избавляет программиста от необходимости реализации логики каскадного удаления на уровне базы данных при помощи FK, тригеров или хранимых процедур.
|
|||
|
||||
| Red Wind |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 280 Регистрация: 25.6.2004 Где: Минск Репутация: нет Всего: 2 |
Idsa, я интересуюсь работой с LINQ to SQL не используя Entity Framework.
|
|||
|
||||
| Idsa |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 5 Всего: 62 |
Red Wind, по большому счету это ничего не меняет. Даже если Linq To Sql не поддерживает каскадные действия на уровне модели (это плохо, но не критично, если Вы используете подход "создал DataContext, выполнил операцию, задиспоузил DataContext", а, следовательно, активно не используете кэш), реализовывать каскадные удаления нужно на уровне базы данных.
|
|||
|
||||
| Red Wind |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 280 Регистрация: 25.6.2004 Где: Минск Репутация: нет Всего: 2 |
Да, уже прочитал, что майкрософт тоже рекомендует такой подход. http://msdn.microsoft.com/ru-ru/library/bb386925.aspx
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | LINQ (Language-Integrated Query) | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |