2016-06-18 6 views
1

Я читал this очень интересную книгу о платформе Entity, которая является предложением ORM от Microsoft, когда я начал отслеживать все предложения от Microsoft для подключения к через свою проприетарную технологию передачи данных ADO.Net. Еще десять лет назад я использовал блоки приложений Microsoft, напрямую ссылаясь на соответствующие DLL-файлы в моем проекте, но с тех пор появилось много вещей. Поэтому я начал расследование вопроса о том, какой вариант осуществлять каждый раз, когда я начинаю новый проект с нуля и как эти предложения действительно стекаются друг против друга, или они просто являются постепенным усовершенствованием той же самой технологии ADO.Net с EF, которая является последней:Взаимосвязь между корпоративной библиотекой и Entity Framework - различные предложения технологий ADO.Net

  1. вручную с использованием различных ADO.Net классов, доступных в System.Data.SqlClient имен (со ссылкой System.Data.dll - доступные начиная с .NET Framework 1.x)
  2. со ссылкой сборки Microsoft.ApplicationBlocks.Data.dll непосредственно в вашем проекте и выполнении запросов БД.
  3. Корпоративная библиотека из Коллекции моделей и практики Microsoft.
  4. LINQ к SQL (выхода с .Net v3.5)
  5. Entity Framework (выхода с .Net v3.5 Service Pack 1)

Все эти вещи могут быть на самом деле точка путаницы раз I войти в мир ADO.Net. Это будет действительно полезно, если кто-то может бросить хороший взгляд на птицу на эти предложения.

+0

К сожалению, такие широкие вопросы вне темы на переполнение стека. –

ответ

1

От руки - вам следует списать Microsoft.ApplicationBlocks.Data и корпоративную библиотеку.

LINQ to SQL поддерживает от 1 до 1 сопоставление таблиц базы данных, представлений, sprocs и функций, доступных в Microsoft SQL Server. Это хорошо для сценария RAD (быстрого разработки приложений). Я считаю, что MS все еще поддерживает его, но я не думаю, что они активно развивают его. Я не использовал его или не видел, чтобы он использовался в любых проектах, которые я проводил годами.

Как вы упомянули, Entity Framework - это ORM и его гораздо более мощный, чем LINQ to SQL. В следующей статье SO есть много информации о различиях.

Другим вариантом является Dapper. Dapper - это микроорганизм и очень быстрый. Вот хороший анализ Dapper vs. ADO.NET в этом сообщении SO: Why should one use Dapper ? Also can anyone comment on Dapper Vs ADO.NET Pros and Cons

Лично я использую Entity Framework или Dapper, когда я создаю приложение. Если это очень большое приложение со сложными требованиями к сопоставлению, то я обычно выбираю Entity Framework. В противном случае я придерживаюсь Dapper.

Я могу использовать прямой ADO.NET, если я создаю службу или какую-то утилиту, которая не требует каких-либо сопоставлений.

Читать это EntityFramework VS pure Ado.Net