2012-02-28 136 views
0

StackOverflow post提到了EntityFramework.SqlServerCompact NuGet包,但它似乎暗示它适用于基于Web的项目。那么我应该如何配置一个WPF项目来使用EF和SQLCE?为实体框架4.3,SQL Server Compact 4和WPF配置项目

+0

也许制定这个问题的另一种方法:如果我选择“从模型生成数据库”,当上右击.edmx文件,我从来没有看到在非基于Web的项目中使用Compact 4.0作为数据源的选项(Compact 3.5在那里,但不是Compact 4.0)。为什么? – 2012-03-06 07:44:15

+0

@JayBorseth参考 - >在您的项目中添加引用 - > System.Data.SqlServerCe版本4.0.0 – Lu55 2012-11-06 12:56:16

回答

1

是的,那里有一个不幸的错误概念。即使我有。

SqlCe Nuget package可以用于任何项目。 但是当您尝试从任何项目比web项目你得到其他使用它:

类型或命名空间名称“WebActivator”找不到(是否缺少using指令或程序集引用?)

快速修复:

  • 当你得到错误,双击它打开EntityFramework.SqlServerCompact.cs。注释掉那里的所有代码。 (该文件驻留在/App_Start和删除文件会导致错误)

OR

  • 更改您的组装/项目为目标的完整的.NET安装,而不是客户端配置文件的。

原因是他们使用WebActivator包来执行一些启动代码。该包装安装在,但需要System.Web,这不是Client Profile的一部分。

以上是TL:医生版本的我从这里学到: http://blogs.hibernatingrhinos.com/1025/one-click-install-nuget-package-and-console-applications

+0

我对更好的修复程序感兴趣。这是一个WPF应用程序,因此不应涉及System.Web。 – HappyNomad 2012-02-28 08:56:30

+0

按照@gideon的步骤执行操作后,您可以尝试执行以下操作来转义System.Web依赖项。删除对'WebActivator'的引用,并注释EntityFramework.SqlServerCompact.cs中的所有代码并移动代码:Database.DefaultConnectionFactory = new SqlCeConnectionFactory(“System.Data.SqlServerCe.4.0”);进入事件:void App_Startup(object sender,StartupEventArgs e){...}在App.xaml.cs下? – 2012-02-28 12:42:38

+0

如果不使用EntityFramework.SqlServerCompact而是单独的包,会更容易吗? – HappyNomad 2012-02-29 00:43:43

相关问题