Вкратце:
Linq-to-SQL - это:
- «подтверждение концепции», выполненное командой Visual C # для демонстрациивозможности Linq
- прямого преобразования 1: 1 - одна таблица становится одной сущностью в вашем коде
- только для SQL Server
- , не очень подходящей для поддержки хранимых процедур (вы не можете, например, создавать «сложные типы» для зеркального отображения значений, возвращаемых из вашей хранимой процедуры)
- подход, основанный на конструкторе, только для базы данных (и модель не может быть легко обновлена при изменении вашей базы данных)
- в основном это тупиковая технология - здесь и там могут быть исправлены ошибки, но, конечно, нет новых функций;это работает - но не ожидайте дальнейшего развития этой
-> так что Linq-to-SQL работает, и очень хорошо в .NET 3.5 - но не ожидайте ничего нового здесь....
Entity Framework (по крайней мере, в .NET v4 и более поздних версиях):
- - «правильная» технология OR-mapper (и более)сделано командами ADO.NET/database в Microsoft
- - гибкое средство отображения с физическим уровнем (схема базы данных), концептуальным уровнем (ваши объекты .NET) и уровнем отображения между этими двумя (трехуровневым)подход)
- поддерживает несколько баз данных (SQL Server, Oracle и т. д.) из коробки - довольно легко написать Entity Framework-совместимого поставщика для других баз данных
- очень хорошо поддерживает хранимые процедуры (вы можетедаже выбрать сохраненный процесс для одной сущности и одной операции, например, для DELETE.
- предлагает подходы к разработке на основе базы данных, на основе модели и на уровне кода
- , если используется модель - эта модель можетобновляться из базы данных, если ваши таблицы cсо временем
- - продукт, в который Microsoft вкладывает много своих ресурсов - все еще очень активно развивается (дополнительные функции, новые подходы, такие как разработка кода и т. д.)
--> Entity Framework - мой очевидный выбор для .NET 4 и новее