我发现了很多关于如何使用Entity Framework 6与Sql CE 4以及如何使用Entity Framework 4与Sql CE 4和3.5的信息,但是使用Entity Framework 6与Sql CE 3.5是不同的。据我所知,CE 3.5附带了一个在System.Data.SqlServerCe.Entity.dll中使用Entity Framework 4的提供程序。该提供程序使用较旧版本的基类,如果我尝试使用它,就会出现以下异常:System.InvalidOperationException:“Entity Framework提供程序类型'System.Data.SqlServerCe.SqlCeProviderServices,System.Data.SqlServerCe.Entity,Version=3.5.1.0,Culture=neutral,PublicKeyToken=89845dcd8080cc91'的'Instance'成员未返回继承自'System.Data.Entity.Core.Common.DbProviderServices'的对象。Entity Framework提供程序必须从此类继承,并且'Instance'成员必须返回提供程序的单例实例。这可能是因为该提供程序不支持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 之间的差异是否太大,以至于无法简单地实现它?还有其他解决方法吗?
由于需要使用合并复制,而这在 4 中不受支持,并且希望使用 Entity Framework,因此我需要使用 3.5。如果没有直接的答案,我可能会使用其他东西代替 Entity Framework。
这很有道理,让我意识到我需要的是一个 Entity Framework 6 的 Sql Server CE 3.5 SP2 提供程序。但是我似乎找不到这样的东西。Nuget 包 EntityFramework.SqlServerCompact 在所有版本中似乎只引用了 Sql Compact 4。这样的提供程序是否已经存在?如果是,它在哪里可以找到?我好像很难找到它。如果没有,那么通过使用 CE 4 中的代码并引用 3.5 来实现它是否合理,或者 CE 3.5 和 4 之间的差异是否太大,以至于无法简单地实现它?还有其他解决方法吗?
由于需要使用合并复制,而这在 4 中不受支持,并且希望使用 Entity Framework,因此我需要使用 3.5。如果没有直接的答案,我可能会使用其他东西代替 Entity Framework。