带有实体框架的SQL Server Compact Edition

时间:2009-10-16 13:59:07

标签: c# sql entity-framework sql-server-ce

我尝试在Visual Studio 2008 SP1中使用带有Entity Framework的SQL Server Compact Edition。这是我的所作所为:

1)我创建了一个类型为Console Application的新项目。

2)我右键单击该项目,选择Add-> New Item。

3)我选择添加名为Something.sdf的本地数据库

4)在“添加新项”向导的下一页中,我选择默认数据集名称(SomethingDataSet)

现在,在服务器资源管理器中,新数据库Something.sdf显示在“数据连接”下。 5)我再次右键单击该项目,然后选择Add-> New Item。

6)我选择使用默认名称Model1.edmx

添加ADO.NET实体数据模型

7)在向导的下一页中,我选择从数据库生成模型。

现在它问我“应用程序使用哪种数据连接来连接数据库?”。在此对话框中,我可以选择使用预先创建的数据连接,还是创建新连接。

预先创建的数据连接的下拉列表是空的(我原本希望在这里看到我的Something.sdf?)。当我按下New Connection时,我只能选择Microsoft SQL Server,Microsoft SQL Server数据库文件,而且 - 我不能选择Microsoft SQL Server CE。如果我选择Other,则会显示数据源“.NET Framework数据提供程序for SQL Server”,这不是我想要的。

我在这里缺少什么?为什么我不能在添加实体数据模型向导中选择我的SQL Server CE数据库?

3 个答案:

答案 0 :(得分:4)

不确定这是否是同一个问题,但我认为必须下载SQL Server Management Studio Express 2008才能在下拉列表中选择CE作为选项。我会更多地了解它,并给你一个更好的回应。

编辑:

如果浏览到:C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG \ machine.config

你应该找到以下节点:

<configuration>
    <system.data>
        <DbProviderFactories>
            <add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>

如果你没找到它,请告诉我。

编辑2:

我一直在运行VS 2010 beta 1,您列出的过程允许我选择SQL CE。但是,我启动了2008并获得与您相同的结果,SQL CE不再是数据源的选项。

我在2008年第一次开始我的项目,我不得不安装“Microsoft SQL Server Compact 3.5 SP1 Beta for Entity Framework Beta 3”,如以下链接所示:

http://technet.microsoft.com/en-us/library/cc835494.aspx

但是,下载似乎不再可用。我无法在任何地方找到它,他们在文章中提供的链接也被破坏了。

升级到2010后我遇到了同样的问题,CE不是一个选项,所以我尝试重新安装VS 2008 SP1,并最终发现我所要做的就是将上面提到的节点添加到C:\ WINDOWS \ Microsoft.NET \ Framework \ v4.0.20506 \ Config中的machine.config。

很抱歉,我的帮助不大,但我想我的2008 SP1也遇到了同样的问题。

编辑3: 看来2008 SP1应该“正常工作”而不需要安装“Compact 3.5 SP1 Beta for Entity Framework”但是当我尝试安装2008 Service Pack 1时,我仍然会遇到相同的症状。只剩下想到的是尝试重新安装一些SQL CE 3.5组件。

答案 1 :(得分:1)

VS2010中没有SQL CE 4.0 CTP1的设计时支持。 所以你不能将SQL CE 4.0与Entity Framework一起使用。

但可以使用少量黑客创建。

以下是使用Entity Framework for SQL Ce的教程的链接。

http://getsrirams.blogspot.com/2010/10/adonet-entity-data-model-for-sqlserver.html

答案 2 :(得分:1)

如果您正在搜索创建Sql Server Compact 3.5连接的方法并且找不到该选项,只需关闭VS并从vs2010 dvd运行SSCEVSTools-esn.msi。 D:\ Visual Studio 2010 \ WCU \ SSCE