我有一个适用于 SQL Server Compact 的Web应用程序。现在,我正在添加 SQL Server 模型。如果我只是简单地将 SQL Server 连接字符串传递给DbContext
实例,我会收到以下错误:
System.ArgumentException:附加信息:不支持关键字:'application name'。
如果我从
更改 web.config ,我可以修复 SQL Server (但打破 SQL Server Compact ) <entityFramework>
- <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework">
<parameters>
- <parameter value="System.Data.SqlServerCe.4.0" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="System.Data.SqlServerCe.4.0" type="System.Data.Entity.SqlServerCompact.SqlCeProviderServices, EntityFramework.SqlServerCompact" />
</providers>
</entityFramework>
要:
<entityFramework>
+ <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
+ <parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="System.Data.SqlServerCe.4.0" type="System.Data.Entity.SqlServerCompact.SqlCeProviderServices, EntityFramework.SqlServerCompact" />
</providers>
</entityFramework>
我怎样才能继续工作?我想我需要在 web.config 中添加一些<context>
标签,但我没有做对。
答案 0 :(得分:0)
解决!我最初使用默认的 SQL Server Compact 连接工厂离开了 web.config 。唯一的区别是我添加了 SQL Server 提供程序,如下所示:
ArrayList
然后,在我的模型上下文类中,我像这样调用 <entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework">
<parameters>
<parameter value="System.Data.SqlServerCe.4.0" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="System.Data.SqlServerCe.4.0" type="System.Data.Entity.SqlServerCompact.SqlCeProviderServices, EntityFramework.SqlServerCompact" />
+ <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
构造函数:
DbContext(DbConnection existingConnection, bool contextOwnsConnection)
现在我可以使用多个提供商。