LINQ, запрашивающий набор данных - PullRequest
2 голосов
/ 22 декабря 2009

I Я хочу распечатать количество таблиц в наборе типизированных данных вместе с количеством полей, связанных с каждой таблицей, и ключевыми полями {primary, foreign}. Как получить эту информацию с помощью LINQ?

1 Ответ

5 голосов
/ 22 декабря 2009

Даже если он является типизированным набором данных, вы все равно можете использовать свойство DataTables объекта DataSet и свойства DataColumns объекта DataTable. Однако, чтобы использовать Linq с ними, вы должны вызвать .OfType<DataTable>() или .OfType<DataColumn>() для соответствующего свойства, чтобы превратить его в IEnumerable <>, чтобы вы могли выполнять запросы Linq к ним. После этого вам просто нужно проверить соответствующие свойства, чтобы узнать, что такое первичный ключ или внешний ключ. В последней части я не уверен, есть ли свойство для этих значений или вам необходимо проверить отношения данных, чтобы определить это.

EDIT: На самом деле в DataTable есть свойство PrimaryKey, которое будет возвращать массив DataColumns, которые составляют PrimaryKey. Что касается внешних ключей, хотя я считаю, что вы должны изучить коллекцию DataRelations, чтобы определить, какие столбцы являются внешними ключами.

...