Взаимосвязь между корпоративной библиотекой и Entity Framework - различные предложения технологий ADO.Net

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

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

Все эти вещи могут действительно вызвать путаницу, когда я войду в мир ADO.NET. Будет действительно полезно, если кто-то сможет взглянуть на эти предложения с высоты птичьего полета.


person RBT    schedule 18.06.2016    source источник
comment
Извините, такие общие вопросы не по теме на Stack Overflow.   -  person Gert Arnold    schedule 23.06.2016


Ответы (1)


Вскоре - списать Microsoft.ApplicationBlocks.Data и Enterprise Library.

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

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

Еще один вариант - Dapper. Dapper - это микроорганизм и очень быстрый. Вот хороший анализ Dapper и ADO.NET в этом сообщении SO: Почему следует использовать Dapper? Также может кто-нибудь прокомментировать плюсы и минусы Dapper против ADO.NET

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

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

Прочтите этот EntityFramework VS pure Ado.Net

person William Xifaras    schedule 21.06.2016