可以使用Entity Framework生成SQL Server Compact数据库

时间:2010-09-09 06:34:53

标签: entity-framework sql-server-ce

我使用Visual Studio 2010和.NET 4(Win7 / x64)创建了一个描述here的项目。一旦我将平台目标更改为“任何CPU”,示例项目就可以运行。但是,如果尝试从实体数据模型生成模型(右键单击模型并选择“从模型生成数据库”),我会收到以下错误。

无法找到合适的DbProviderManifest来生成SSDL。提供的提供程序不变名称'System.Data.SqlServerCe.3.5'无效。

我在项目中引用了System.Data.SqlServerCe。

3 个答案:

答案 0 :(得分:2)

我似乎刚刚修好了

  

错误175:在配置中找不到指定的商店提供商,或者无效。

以XML或设计师的身份打开.emdx eitehr。

我需要添加元素

<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"/>

我的machine.config作为<configuration><system.data><DbProviderFactories>下的第二个条目(与SQL Compact V4类似的条目)。

这使得它与另一个我没有收到错误175的系统相匹配。

NB。将此项添加到app.config对于设计人员来说还不够(如果尚未安装CE 3.5工具,搜索网络表明在运行时需要这样做。)

答案 1 :(得分:2)

更新@Richard的回答:

如果使用 SQL Server Compact Edition v4.0 ,则应在machine.config文件中包含以下行:

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

答案 2 :(得分:0)