powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Срочно нужна помощь! Не могу выкинуть строку из коллекции
3 сообщений из 3, страница 1 из 1
Срочно нужна помощь! Не могу выкинуть строку из коллекции
    #33203892
Smocker1975
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется отношение один-ко-многим
я хочу удалить строку-родителя вместе со всеми дочерними строками
и если какая-то из дочерних строк имеет статус Deleted, то она остается висеть в наборе данных, помеченная на удаление.

пробовал так:
dt - родительская таблица
dt2 - дочерняя таблица
dr - строка родитель
DataRow[] arr = dr.GetChildRows("Имя отношения");
foreach (DataRow dr2 in arr)
{
if (dr2.RowState == DataRowState.Deleted)
dr2.RejectChanges();
dt2.Rows.Remove(dr2);
}
dt.Rows.Remove(dr);

или так:
dr - строка родитель
DataRow[] arr = dr.GetChildRows("Имя отношения");
foreach (DataRow dr2 in arr)
{
if (dr2.RowState == DataRowState.Deleted)
dr2.AcceptChanges();
else
dt2.Rows.Remove(dr2);
}
dt.Rows.Remove(dr);

не удаляется и все тут.
дочерняя удаленная строка остается висеть в наборе данных помеченной на удаление.
Ошибка тут кроется именно в удаленных строках, так как остальные строки выкидываются нормально.

Кстати почему метод Remove не оказывает на строки помеченные как Deleted никакого влияния?
...
Рейтинг: 0 / 0
Срочно нужна помощь! Не могу выкинуть строку из коллекции
    #33204913
Hratchia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а AcceptChanges когда вызывать будешь?


Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Срочно нужна помощь! Не могу выкинуть строку из коллекции
    #33209748
Smocker1975
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AcceptChanges вообще вызывать не буду, мне надо просто очистить коллекцию, не зависимо от того что в ней есть.
Я уже нашел решение проблемы, может кому пригодится:
Метод GetChildRows возвращает все строки, за исключением тех, которые имеют состояние Deleted.
поэтому сначала: Select("фильтр", "", DataRowViewState.Deleted), к полученным строкам применить метод AcceptChanges.
а уже потом GetChildRows и удаляем полученные строки методом Remove .
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Срочно нужна помощь! Не могу выкинуть строку из коллекции
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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