Мой совет - используйте оба. Сначала я подумал, что буду использовать только linq для sql и никогда больше не буду трогать ado.net (что меня порадовало, lol).
Теперь я использую оба, потому что некоторые вещи, которые linq to sql (и любой ORM, такой как EF) не могут сделать. Мне пришлось сделать несколько массовых вставок, и я сначала сделал это с linq to sql, а для создания 500 записей это заняло более 6 минут (2 минуты для правил проверки остальных вставлялось в БД).
Я изменил его на sql массовое копирование, и теперь оно сокращено до 2 минут и 4 секунд (4 секунды, чтобы сделать все вставки)
Но, как сказал marc_s, я действительно не хотел возиться с DataTables, DataRows и нетипизированным Row ["RowName"].
Скажем, моя таблица была длиной в 10 столбцов и называлась таблицей А. Что я сделал, так это то, что я использовал linq to sql, создал объект класса A (новый TableA ()) и заполнил его данными. Затем я передал бы этот объект методу, который создал datarow.
Таким образом, linq to sql сэкономил мне некоторое время, потому что я, вероятно, создал бы класс, поскольку не хотел бы передавать 10 параметров в метод, который создает строку данных. Я также чувствую, что это возвращает немного утерянности, поскольку вы должны передать правильный объект, чтобы использовать этот метод, чтобы меньше шансов на передачу неправильных данных.
Наконец, вы все еще можете использовать linq to sql для вызова хранимых процедур, и это похоже на одну строку кода.
Так что я бы использовал оба, когда вы заметите, что linq to sql (или в вашем случае EF) медленный, тогда просто напишите SP и вызовите его через EF. Если вам нужно сделать прямой ado.net, оцените, что вам нужно сделать, возможно, вы можете использовать EF для большей части кода (чтобы вы могли по крайней мере работать с объектами) и только для той небольшой части, что я делал с ado.net. sql массовая копия.