Строгая типизация хороша, когда вы знаете, как будет выглядеть ваша схема во время компиляции. Но что, если вы работаете над приложением, которое позволяет пользователю определять свою собственную схему?
Существует ли надежный реляционный поставщик LINQ, работающий на том же уровне абстракции, что и LINQ to XML?
Пример:
var whoIsJohnGalt = db.Tables["Persons"]
.Where( row => row["First Name"] == "John" && row["LastName"] == "Galt")
.Select( row => row["Bio"] );
LINQ to DataSet не учитывается, поскольку он не сильно отличается от LINQ to Objects: для этого требуется предварительное заполнение набора данных.
Многие PHP-фреймворки (например, Zend_Table, модели CakePHP) работают таким образом, поэтому это не совсем невозможно. Но если такого инструмента не существует, мне, вероятно, лучше использовать сырой ADO.net, чем генерацию строго типизированного кода.