Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Каскадное удаление, LINQ to SQL 
V
    Опции темы
Red Wind
Дата 25.3.2009, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 280
Регистрация: 25.6.2004
Где: Минск

Репутация: нет
Всего: 2



К сожалению, LINQ to SQL не поддерживает каскадное удаление. Но я уверен что есть различные best practice по удаленю связанных объектов используя эту технологию. Что вы можете посоветовть?
Первое что приходит в голову это использование ON DELETE CASCADE во внешних ключах бд. Или ещё, используя reflection, можно написать нейкий метод который будет проходить по связанным объектам и удалять их.

P.S. Не судите строго, первый день изучаю LINQ to SQL:)
PM MAIL ICQ   Вверх
akolesni
Дата 25.3.2009, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 12.6.2006

Репутация: нет
Всего: нет



Я всё удаляю вызовом процедур на DataContext  с базы данных(MS SQL)


PM MAIL   Вверх
Red Wind
Дата 25.3.2009, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 280
Регистрация: 25.6.2004
Где: Минск

Репутация: нет
Всего: 2



akolesni, и что конкретно делают эти процедуры?
Хотя, имхо, если для работы с бд используется ORM, то дополнительно юзать хранимые процедуры не правильно.
PM MAIL ICQ   Вверх
Idsa
Дата 25.3.2009, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 5
Всего: 62



Red Wind, Entity Framework поддерживает каскадное удаление на уровне модели. Однако это позволяет лишь каскадно удалить данные из кэша и не избавляет программиста от необходимости реализации логики каскадного удаления на уровне базы данных при помощи FK, тригеров или хранимых процедур.


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Red Wind
Дата 25.3.2009, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 280
Регистрация: 25.6.2004
Где: Минск

Репутация: нет
Всего: 2



Idsa, я интересуюсь работой с LINQ to SQL не используя Entity Framework.
PM MAIL ICQ   Вверх
Idsa
Дата 25.3.2009, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 5
Всего: 62



Red Wind, по большому счету это ничего не меняет. Даже если Linq To Sql не поддерживает каскадные действия на уровне модели (это плохо, но не критично, если Вы используете подход "создал DataContext, выполнил операцию, задиспоузил DataContext", а, следовательно, активно не используете кэш), реализовывать каскадные удаления нужно на уровне базы данных.


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Red Wind
Дата 25.3.2009, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 280
Регистрация: 25.6.2004
Где: Минск

Репутация: нет
Всего: 2



Да, уже прочитал, что майкрософт тоже рекомендует такой подход. http://msdn.microsoft.com/ru-ru/library/bb386925.aspx
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | LINQ (Language-Integrated Query) | Следующая тема »


 




[ Время генерации скрипта: 0.0470 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.