В чем разница между классами linq и sql и структурой сущностей - PullRequest
2 голосов
/ 26 ноября 2011

В чем разница между классами linq и sql и структурой сущностей, кажется, что они одинаково работают как , что лучше в .net3.5 и почему? *, что лучше в .net4 ипочему? *

Ответы [ 2 ]

9 голосов
/ 26 ноября 2011

Вкратце:

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 и новее

1 голос
/ 26 ноября 2011

По этой теме сделано много сравнительных анализов:

Сравнение производительности: Entity Framework и производительность LINQ to SQL

Особенности сравнения: LINQ to SQL против Entity Framework

А также связанные темы можно найти в StackOverflow

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...