Определите, есть ли у таблицы внешних ключей какие-либо ссылки на таблицу первичных ключей с помощью LINQ & DataTable - PullRequest
2 голосов
/ 02 ноября 2010

У меня есть 2 таблицы данных.

Один мастер, другой - деталь

Когда кто-то собирается удалить основную запись, как я могу проверить, что в моем подробном отчете нет строк, относящихся к идентификатору основной таблицы.

ОБНОВЛЕНИЕ: Пользователь имеет возможность выбрать более одной основной записи одновременно

Я хочу использовать LINQ, если это возможно.

Я начал смотреть на DataTable.Rows.Cast () ......

1 Ответ

3 голосов
/ 02 ноября 2010

Для этого вам не нужно LINQ.

Вместо этого вы можете проверить masterRow.GetChildRows("RelationName").Length.

EDIT : вы должны использовать DataRelation.

Если вы действительно не хотите этого, вы можете проверить

childTable.AsEnumerable().Any(dr => dr["ParentIdColumn"] == someValue)

РЕДАКТИРОВАТЬ : чтобы проверить наличие нескольких родителей:

var parentKeys = parentRows.Select(dr => dr["id"]).ToList();

if (childTable.AsEnumerable().Any(dr => parentKeys.Contains(["ParentIdColumn"])))
...