Entity Framework 6 с Sql Server Compact 3.5 SP2?

entity-framework entity-framework-6 sql-server-ce sql-server-ce-3.5

Вопрос

Я нашел много информации об использовании Entity Framework 6 с Sql CE 4 и об использовании Entity Framework 4 с Sql CE 4 и 3.5, но использование Entity Framework 6 с Sql CE 3.5 - это другое дело. Насколько я могу судить, CE 3.5 поставляется с поставщиком для Entity Framework 4 в System.Data.SqlServerCe.Entity.dll. Этот провайдер использует более старую версию базовых классов, и если я пытаюсь ее использовать, я получаю следующее исключение:

System.InvalidOperationException: член «экземпляра» типа поставщика Entity Framework «System.Data.SqlServerCe.SqlCeProviderServices, System.Data.SqlServerCe.Entity, Version = 3.5.1.0, Culture = neutral, PublicKeyToken = 89845dcd8080cc91 'не возвратил объект, который наследуется от «System.Data.Entity.Core.Common.DbProviderServices». Поставщики Entity Framework должны наследовать от этого класса, а член «Экземпляр» должен вернуть экземпляр singleton поставщика. Это может быть связано с тем, что провайдер не поддерживает Entity Framework 6 или новее; см. http://go.microsoft.com/fwlink/?LinkId=260882 для получения дополнительной информации.

Это имеет смысл и указывает на то, что мне нужен поставщик Entity Framework 6 для Sql Server CE 3.5 SP2. Кажется, я не могу найти такую ​​вещь. Пакет nuget EntityFramework.SqlServerCompact, по-видимому, ссылается только на Sql Compact 4 во всех его версиях. Существует ли такой провайдер уже существует? Если да, то где это можно найти? Кажется, мне трудно найти его. Если нет, было бы реалистично подумать об их реализации, используя код в одном для CE 4 со ссылкой на 3.5, или же разница между CE 3.5 и 4 слишком отличается, чтобы это было просто? Есть ли другой способ?

Мне нужно использовать 3.5 из-за необходимости использования репликации слиянием, которая не поддерживается в 4, и хотела бы использовать Entity Framework. Если нет прямого ответа на этот вопрос, я, вероятно, буду использовать что-то другое, кроме Entity Framework.

Принятый ответ

Хорошо, это второй запрос, который я слышу для этого, давайте сделаем это. Я разблокирую код и сделаю пакет Nuget для 3.5 - как насчет «EntityFramework.SqlServerCompact.Legacy»? «Требуется только одно» изменение кода - факт, что 3.5 не поддерживает ORDER BY..FETCH..OFFSET синтаксис (т. Е. Пейджинг), вызванный с помощью Take and Skip. Вас это интересовало бы?

UPDATE: пакет теперь доступен на NuGet http://www.nuget.org/packages/EntityFramework.SqlServerCompact.Legacy



Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему