我在阅读 Contoso University asp.net MVC 教程时遇到了同样的问题。问题似乎来自将 SQL Server Compact 连接字符串与成员资格提供程序 Sql Server 连接混合。
我最初使用了 hyperGeoMetric 的修复程序,并且确实有效。然后我查看了可下载代码的 web.config 并注意到了一些额外的配置。
如果您使用以下内容添加/替换 entityFramework 的默认参数:
<parameters>
<parameter value="Data Source=(localdb)\v11.0; Integrated Security=True; MultipleActiveResultSets=True" />
</parameters>
添加一个 system.data 部分,如下所示:
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SqlServerCe.4.0" />
<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>
并修改现有(默认) DefaultConnection 如下所示:
<add name="DefaultConnection" providerName="System.Data.SqlServerCe.4.0" connectionString="Data Source=|DataDirectory|aspnet-membership.sdf" />
在这些修改之后,我能够使用 Sql Server Compact 版本继续本教程。
山姆