实体框架6与Sql Server Compact 3.5 SP2?

Dav*_*ael 3 entity-framework sql-server-ce sql-server-ce-3.5 entity-framework-6

我已经找到了很多关于在Sql CE 4中使用Entity Framework 6以及在Sql CE 4和3.5中使用Entity Framework 4的信息,但是使用Entity Framework 6和Sql CE 3.5是另一回事.据我所知,CE 3.5在System.Data.SqlServerCe.Entity.dll中附带了Entity Framework 4的提供程序.此提供程序使用旧版本的基类,如果我尝试使用它,我会得到以下异常:

System.InvalidOperationException:实体框架提供程序类型'System.Data.SqlServerCe.SqlCeProviderServices,System.Data.SqlServerCe.Entity,Version = 3.5.1.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91'的'Instance'成员未返回继承自'System.Data.Entity.Core.Common.DbProviderServices'的对象.实体框架提供程序必须从此类继承,并且"实例"成员必须返回提供程序的单例实例.这可能是因为提供者不支持实体框架6或更高版本; 有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=260882.

这是有道理的,并指出我所需要的是实现Sql Server CE 3.5 SP2的Entity Framework 6的提供程序.我似乎无法找到这样的东西.nuget包EntityFramework.SqlServerCompact似乎只引用了所有版本的Sql Compact 4.这样的提供者是否已经存在?如果是这样,它在哪里可以找到?我似乎很难找到它.如果没有,那么考虑通过使用CE 4中的代码来引用3.5来实现它是否是现实的,或者CE 3.5和4之间的区别是否过于简单?还有另一种解决方法吗?

我需要使用3.5,因为需要使用合并复制,这在4中不受支持,并且想要使用Entity Framework.如果没有直截了当的答案,我可能会使用Entity Framework之外的其他内容.

Eri*_*kEJ 9

好的,这是我听到的第二个请求,让我们这样做.我将分叉代码,并为3.5创建一个Nuget包 - 如何"EntityFramework.SqlServerCompact.Legacy"?所需的"唯一"代码更改是3.5不支持通过Take和Skip调用的ORDER BY..FETCH..OFFSET语法(即分页).你会对此感兴趣吗?

更新:现在可以在NuGet上获得包http://www.nuget.org/packages/EntityFramework.SqlServerCompact.Legacy