Список поставщиков Entity Framework для различных баз данных


82

Какие провайдеры есть и ваш опыт их использования

Я хотел бы знать обо всех возможных встроенных поставщиках .NET Framework Entity Framework, которые существуют, а также об их ограничениях по сравнению с LINQ2Entities по умолчанию (от MS для MS SQL). Еще лучше, если есть больше для той же базы данных. Скажите мне, и я обновлю этот пост этим списком.

Не стесняйтесь добавлять дополнительных поставщиков прямо в этот пост или давать ответ, и другие (включая меня) добавят его в список.

Entity Framework 1

Microsoft SQL Server Стандартный / Предприятие / Экспресс

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

DB2

Sybase

Informix

Жар-птица

Оболочки провайдера

Entity Framework 4 ( бета )

Microsoft SQL Server

  • Linq to Entities 4 от Microsoft - поставляется с .net 4.0 и Visual Studio 2010; пока единственный провайдер для EF4

MySQL

SQLite

PostgreSQL

Oracle

Службы Microsoft SQL Server Analysis Services (SSAS)


2
Кто-нибудь - есть ли поставщики InMemory? Конечно, доступные варианты будут сильно урезаны .. но что-то лучше, чем ничего, правда?
Pure.Krome

sqlite имеет опцию db в памяти, которая идеально подходит для автоматизированных тестов, быстрых, легких и почти полнофункциональных.
Джейсон Мекли

1
Интересный факт: это один из немногих вопросов по SO с 5 или более ответами, где совокупная оценка всех доступных ответов составляет менее 1/3 балла вопроса. :)
dotNET

Ответы:


3

DB2 будет работать, но если вы хотите использовать некоторые готовые возможности .NET, которые мы все принимаем как должное (подумайте о поставщиках членства и ролей), вам придется немало поработать. DB2 не очень хорошо справляется с хранимыми процедурами, поэтому вы также смотрите на множество параметризованных встроенных SQL.

У меня тоже были проблемы с производительностью у провайдера от IBM. Есть еще один поставщик, доступный от компании под названием DataDirect. Это выглядит более производительным, но это будет стоить вам. Для чего-то вроде внешнего веб-сайта, где важна скорость, стоимость, вероятно, не будет проблемой.

Я уверен, что DB2 - отличная система, если вы строите на другой платформе, но на самом деле она не предназначена для хорошей игры с .NET. Если вы уже не состоите в браке с DB2, я бы поискал в другом месте.


3

Я не думаю, что DB2 еще работает с EF 4. Если да, пожалуйста, поправьте меня и расскажите, как это делается. Я не могу заставить поставщиков DB2 отображаться в диалоговых окнах источников данных.


1
В любом случае в верхнем списке не указано, что DB2 поддерживает EF4.
Роберт Коритник


2

IBM Data Server Provider содержит некоторые ограничения, которые делают его раздражающим и уязвимым для более сложных сценариев запросов. Кроме того, конструктор EDMX не работает с таблицами Informix с префиксом "informix. *". См. Здесь: текст ссылки


2

Вам не хватает System.Data.SQLite для SQLite. Это открытый исходный код, и по моему опыту он довольно надежен. Насколько мне известно, это был один из первых поставщиков EF для баз данных, отличных от SQL Server.


2

Проблемы "Пропустить / взять и заказать" были исправлены несколько месяцев назад в провайдере 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 - мощный инструмент времени разработки - вместе с нашими продуктами.


Правильно ли ваш провайдер работает с импортом функций (хранимой процедурой), принимающим параметры? потому что у меня были проблемы с коннектором MySql.
Роберт Коритник

На данный момент у нас нет открытых запросов на импорт параметризованных функций. Но вы можете убедиться, что dotConnect для MySQL соответствует вашим требованиям, просто загрузив пробную версию с нашего сайта. Еще одна актуальная вещь для EF v1 - мы обеспечиваем поддержку не только импорта функций, но и процедур, которые не возвращают никаких наборов результатов. Это было достигнуто за счет специальной генерации кода и инструмента Entity Developer.
Devart

2

EF 7 поддерживает следующих поставщиков БД

• Microsoft SQL Server

• SQLite

• Microsoft SQL Server Compact Edition

• Npgsql (PostgreSQL)

• Серверы данных IBM

• InMemory (для тестирования)

Справка


Я думаю , что это теперь переименованный EntityFrameworkCore как это значительно отличается: thedatafarm.com/data-access/...
андрей паштет

1

MySQL имеет коннектор для EF4 , текущая версия - 6.3.5, и его основные функции работают нормально, но у него все еще есть проблемы с некоторыми методами, например

  • System.Data.Objects.ObjectContext.CreateDatabase ()
  • System.Data.Objects.ObjectContext.DatabaseExists ()

что затрудняет полное использование подхода модели. Это возможно, вручную отредактировав сценарий MySQL (доступен с методом CreateDatabaseScript). Команда MySQL, похоже, не стремится исправлять эти ошибки, я не уверен, каков на самом деле уровень обязательств с их стороны, но он определенно ниже, чем был раньше.

При этом те же методы терпят неудачу и с SQL CE (они не реализованы, и я не думаю, что команда MS решит это в ближайшее время).


Подробнее о поддержке MySQL VS2010 / EF4 можно найти на этой странице: dev.mysql.com/doc/refman/5.1/en/… . Вам понадобится MySQL Connector / Net версии 6.3.2 или выше.
mathijsuitmegen

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.