1

我已经在我的 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>

与它有关。

我试过检查教程,但在每一站都失败了。

4

2 回答 2

2

您需要验证必须分配给连接字符串的正确名称,它采用完整的类名称,例如,如果您有这样的 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")
    {}
}
于 2013-08-12T15:05:03.040 回答
0

注意提供者类名应该是

providerName="System.Data.SqlClient" 

不是

providerName="System.Data.SQlServer"
于 2013-08-12T15:04:18.127 回答