3

我似乎在创建 MVC4 应用程序时遇到了问题,在该应用程序中我采用了代码优先的方法来创建我的模型,但 web.config 文件中似乎没有创建连接字符串。

构建的数据库似乎建立在 (localhost)\SQLEXPRESS 实例上,但我想将其更改为外部数据源。如果没有要更新的连接字符串,我不知道该怎么做。

请有人能指出我正确的方向吗?

编辑:我发现下图突出了答案所说的很好

EF DB 初始化流程图
(来源:entityframeworktutorial.net

4

3 回答 3

2

您必须自己添加连接字符串

<add name="SomeDb" connectionString="Data Source=SERVENAME;Initial Catalog=DBNAME;User Id=loginid;Password=password" providerName="System.Data.SqlClient" />

此字符串的名称应与您的上下文类的名称匹配。

public class SomeDb: DbContext
{
    public SomeDb()
        : base("name=SomeDb")
    { 
    }
}

这应该这样做。

于 2013-10-11T09:58:15.327 回答
1

您必须创建一个与您的类同名的连接字符串DbContext

<connectionStrings>
    <add name="NameOfDbContext" connectionString="Data Source=ServerName\InstanceName;Initial Catalog=DatabaseName;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>

您还可以使用DbContext类的重载自己指定连接字符串:

public class MyDbContext() : base("ProductionDbContext")
{
}

现在您可以ProductionDbContext用作连接字符串。

有关详细信息,请参阅MSDN 上的这篇文章

于 2013-10-11T09:49:54.000 回答
1

如果您使用 ADO.NET Entity Framework(.edmx),它将使用连接字符串更新您的 web.config 文件。但是在代码优先中,您需要在 web.config 中编写连接字符串,例如,

假设您的 dbcontext 看起来像,

public class SampleDbContext:DbContext
{
public SampleDbContext():base("SampleDbContext")
{

}
...
...
}

在您应该在 web.config 中创建连接字符串之后,SampleDbContext名称如下,

希望这可以帮助

于 2013-10-11T09:57:11.720 回答