Какие провайдеры есть и ваш опыт их использования
Я хотел бы знать обо всех возможных встроенных поставщиках .NET Framework Entity Framework, которые существуют, а также об их ограничениях по сравнению с LINQ2Entities по умолчанию (от MS для MS SQL). Еще лучше, если есть больше для той же базы данных. Скажите мне, и я обновлю этот пост этим списком.
Не стесняйтесь добавлять дополнительных поставщиков прямо в этот пост или давать ответ, и другие (включая меня) добавят его в список.
Entity Framework 1
Microsoft SQL Server Стандартный / Предприятие / Экспресс
- Linq 2 Entities - соединитель Microsoft SQL Server
- Поставщики данных DataDirect ADO.NET
Microsoft SQL Server CE (компактная версия)
- Любой провайдер?
MySQL
MySQL Connector (начиная с версии 6.0) - Я читал о проблемах при использовании
Skip()
,Take()
иSort()
в том же дереве выражения - каждый прием для ввода их опыт / знания об этом.Примечание . Интеграция MySQL Connector / NET Visual Studio не поддерживается в экспресс-выпусках Visual Studio, что означает, что вы не сможете просматривать базы данных MySQL в окне проводника баз данных или добавлять источник данных MySQL через диалоговые окна мастера Visual Studio. Некоторые пользователи могут обнаружить, что это ограничивает их возможность использовать Entity Framework и MySQL в Visual Studio Express).
Devart dotConnect для MySQL -
проблемы, похожие на коннектор MySql, как я читал, и оба пытаются обвинить в этом MS[предполагается,чтоэти проблемы должны быть решены ]
SQLite
PostgreSQL
Oracle
- Devart dotConnect для Oracle
- Пример поставщика Entity Framework для Oracle - проект усилий сообщества
- Поставщики данных DataDirect ADO.NET
DB2
- Поставщик IBM Data Server имеет поддержку EF . Вот некоторые ограничения .
- Поставщики данных DataDirect ADO.NET
Sybase
Informix
- IBM Data Server Provider поддерживает Informix
Жар-птица
Оболочки провайдера
Entity Framework 4 ( бета )
Microsoft SQL Server
- Linq to Entities 4 от Microsoft - поставляется с .net 4.0 и Visual Studio 2010; пока единственный провайдер для EF4
MySQL
- Соединитель MySQL .NET , в основном функциональный, но нерешенные проблемы с методами CreateDatabase и DatabaseExists (v6.3.5)
- Devart dotConnect для MySQL
SQLite
PostgreSQL
Oracle
Службы Microsoft SQL Server Analysis Services (SSAS)
Ответы:
DB2 будет работать, но если вы хотите использовать некоторые готовые возможности .NET, которые мы все принимаем как должное (подумайте о поставщиках членства и ролей), вам придется немало поработать. DB2 не очень хорошо справляется с хранимыми процедурами, поэтому вы также смотрите на множество параметризованных встроенных SQL.
У меня тоже были проблемы с производительностью у провайдера от IBM. Есть еще один поставщик, доступный от компании под названием DataDirect. Это выглядит более производительным, но это будет стоить вам. Для чего-то вроде внешнего веб-сайта, где важна скорость, стоимость, вероятно, не будет проблемой.
Я уверен, что DB2 - отличная система, если вы строите на другой платформе, но на самом деле она не предназначена для хорошей игры с .NET. Если вы уже не состоите в браке с DB2, я бы поискал в другом месте.
источник
Я не думаю, что DB2 еще работает с EF 4. Если да, пожалуйста, поправьте меня и расскажите, как это делается. Я не могу заставить поставщиков DB2 отображаться в диалоговых окнах источников данных.
источник
Поставщик IBM Data Server для .NET позволяет Informix работать с EF. Смотрите здесь: текст ссылки
источник
IBM Data Server Provider содержит некоторые ограничения, которые делают его раздражающим и уязвимым для более сложных сценариев запросов. Кроме того, конструктор EDMX не работает с таблицами Informix с префиксом "informix. *". См. Здесь: текст ссылки
источник
Вам не хватает System.Data.SQLite для SQLite. Это открытый исходный код, и по моему опыту он довольно надежен. Насколько мне известно, это был один из первых поставщиков EF для баз данных, отличных от SQL Server.
источник
Проблемы "Пропустить / взять и заказать" были исправлены несколько месяцев назад в провайдере Devart.
Некоторые примечания о поддержке EF4
В настоящее время мы обеспечиваем поддержку Visual Studio Beta 1 и EF4 Beta 1. Мы планируем выпустить сборку с поддержкой EF4 в конце декабря - начале января. Нашу поддержку Entity Framework нельзя назвать идеальной - эта ORM изначально была разработана для MS SQL Server, поэтому возможность учесть чудеса других СУБД существенно ограничена.
Есть ряд проблем, которые просто не в состоянии решить тот, кто внедряет EF-провайдер. Некоторые примеры доступны здесь . Основная проблема связана с операторами CROSS APLY и OUTER APPLY, в некоторых случаях генерируемыми средой выполнения EF. В других СУБД это утверждение отсутствует, поэтому возникает проблема с переводом. Также следует понимать, что в случае устаревших баз данных EF, как правило, неприменим.
Мы принимаем во внимание пользователей, которых не устраивает стандартный конструктор Microsoft, и поставляем Entity Developer - мощный инструмент времени разработки - вместе с нашими продуктами.
источник
EF 7 поддерживает следующих поставщиков БД
• Microsoft SQL Server
• SQLite
• Microsoft SQL Server Compact Edition
• Npgsql (PostgreSQL)
• Серверы данных IBM
• InMemory (для тестирования)
Справка
источник
MySQL имеет коннектор для EF4 , текущая версия - 6.3.5, и его основные функции работают нормально, но у него все еще есть проблемы с некоторыми методами, например
что затрудняет полное использование подхода модели. Это возможно, вручную отредактировав сценарий MySQL (доступен с методом CreateDatabaseScript). Команда MySQL, похоже, не стремится исправлять эти ошибки, я не уверен, каков на самом деле уровень обязательств с их стороны, но он определенно ниже, чем был раньше.
При этом те же методы терпят неудачу и с SQL CE (они не реализованы, и я не думаю, что команда MS решит это в ближайшее время).
источник
Проблемы с Connector / NET в операторах Take / Skip устранены давно (провайдер EF в настоящее время совместим с EF 5 и EF 4).
Среди исправленных ошибок:
http://bugs.mysql.com/bug.php?id=45723
http://bugs.mysql.com/bug.php?id=72148
http://bugs.mysql.com/bug.php?id=70828
http://bugs.mysql.com/bug.php?id=69751
Благодарю.
источник