我使用代码优先的数据库方法已经在我的MVC应用程序上工作了一段时间。
现在,我已经设置了一个SQL Server 2008数据库,并希望将其用于生产用途。
但是,无论如何,它仍然使用本地制作的.sdf
数据库。
我已尝试将web.config
connectionStrings
修改为
<connectionStrings>
<add name="DefaultConnection"
providerName="System.Data.SqlServer"
connectionString="Server=-edit-;Database=-edit-;User Id=-edit-;Password=-edit-;" />
<!--<add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-SignalR-20130806111535;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-SignalR-20130806111535.mdf" />-->
</connectionStrings>
这根本不起作用,虽然看起来好像是
<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>
与它有关。
我已经尝试过检查教程,但每次停止都失败了。
答案 0 :(得分:2)
您需要验证必须分配给Connection字符串的正确名称,它需要完整的类名,例如,如果您有这样的DbContext:
namespace ApplicationOrders.EF
{
public class OrderContext : DbContext
{
public OrderContext(){}
}
}
连接将是:
<connectionStrings>
<add name="ApplicationOrders.EF.OrderContext"
或者您可以通过以下方式将连接字符串名称添加到DbContext:
public class OrderContext : DbContext
{
public OrderContext()
: base("DefaultConnection")
{}
}
答案 1 :(得分:0)
请注意,提供者类名称应为
providerName="System.Data.SqlClient"
不是
providerName="System.Data.SQlServer"