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


82

Які постачальники є та ваш досвід їх використання

Я хотів би знати про всіх можливих постачальників платформ .NET Framework Entity Framework, а також про їх обмеження порівняно із LINQ2Entities за замовчуванням (від MS для MS SQL). Якщо їх більше для однієї бази даних, то ще краще. Скажіть мені, і я буду оновлювати цю публікацію цим списком.

Не соромтеся додавати додаткових постачальників безпосередньо в цю публікацію або надавати відповідь, і інші (включаючи мене) додадуть її до списку.

Структурна структура 1

Microsoft SQL Server Standard / Enterprise / Express

Microsoft SQL Server CE (Compact Edition)

  • Будь-який постачальник?

MySQL

  • MySQL Connector (починаючи з версії 6.0) - я читав про проблеми під час використання Skip(), Take()і Sort()в тому ж дереві виразів - кожен бажаючий може внести свій досвід / знання щодо цього.

    Примітка : Інтеграція MySQL Connector / NET Visual Studio не підтримується в Express Edition Visual Studio, тобто ви не зможете переглядати бази даних MySQL у вікні Провідника баз даних або додавати джерело даних MySQL через діалогові вікна майстра Visual Studio. Деякі користувачі можуть виявити, що це обмежує їх можливості використовувати Entity Framework та MySQL у Visual Studio Express).

  • Devart dotConnect для MySQL - подібні проблеми з роз’ємом MySql, як я вже читав, і обидва намагаються звинуватити в цьому MS [ці проблеми мають бути вирішені ]

SQLite

PostgreSQL

Oracle

DB2

Sybase

Інформікс

Жар-птиця

Обгортки постачальників

Entity Framework 4 ( бета-версія )

Microsoft SQL Server

  • Microsoft Linq to Entities 4 - постачається з .net 4.0 та Visual Studio 2010; поки що єдиний постачальник для EF4

MySQL

SQLite

PostgreSQL

Oracle

Служби аналізу Microsoft SQL Server (SSAS)


2
Будь-хто - чи є провайдери InMemory? Звичайно, доступні варіанти будуть сильно позбавлені .. але щось краще ніж нічого, так?
Pure.Krome

sqlite має опцію db в пам’яті, яка ідеально підходить для автоматизованих тестів, швидких, легких та майже повнофункціональних.
Джейсон Меклі

1
Цікавий факт: це одне з небагатьох запитань щодо ТО з 5 або більше відповідями, і коли загальний бал усіх доступних відповідей становить менше 1/3 балу запитань. :)
dotNET

Відповіді:


3

DB2 буде працювати, але якщо ви хочете використовувати деякі нестандартні .NET-функції, які всі ми сприймаємо як належне (думайте про членство та постачальників ролей), у вас буде досить багато роботи. DB2 насправді погано справляється зі збереженими процедурами, тому ви також розглядаєте багато параметризованих вбудованих SQL.

У мене також були проблеми з продуктивністю з провайдером від IBM. Існує ще один постачальник послуг, який називається DataDirect. Це виглядає ефективнішим, але коштуватиме вам. Для чогось на зразок зовнішнього веб-сайту, де важлива швидкість, витрати, ймовірно, не будуть проблемою.

Я впевнений, що DB2 - це чудова система, якщо ви будуєте на іншій платформі, але вона насправді не була розроблена для приємної гри з .NET. Якщо ви вже не одружені з DB2, я б подивився деінде.


3

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


1
У верхньому списку в будь-якому випадку не вказана підтримка DB2 для EF4.
Роберт Коритник,


2

Постачальник серверів даних IBM містить деякі обмеження, які роблять його подразливим і крихким для більш складних сценаріїв запитів. Крім того, дизайнер 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/…
andrew pate

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.