2016-02-29 105 views
2

当我谷歌“MVC连接字符串”或类似的东西,我得到了一堆关于这个问题/文章,我读过的所有这些说编辑一个Web.config文件。是否有任何理由在我的项目中不起作用?MVC实体框架连接字符串不起作用

我的项目使用实体框架,现在它工作在本地数据库。我编辑了两个Web.config文件(一个在项目文件夹中,另一个在Views文件夹中 - 我真的不知道其中的差别)。这些文件最初没有任何<connectionStrings>标签,所以我手动添加这一点,这两个文件:

<connectionStrings> 
    <add name="DefaultConnection" connectionString="Data Source=mysite.database.windows.net;Initial Catalog=Developer;User ID=user;Password=pass" providerName=".NET Framework Data Provider for SQL Server"/></connectionStrings> 

..但它仍然使用我的本地数据库。有什么明显的事情我错过了?

编辑:

删除调试和重建不起作用。

这里是我的上下文类

public class TrackerContext : DbContext 
{ 
    public TrackerContext() : base() {} 
    public DbSet<Toll> Tolls { get; set; } 
    public DbSet<TollRecord> TollRecords { get; set; } 
    public DbSet<Trip> Trips { get; set; } 
    public DbSet<TripRecord> TripRecords { get; set; } 
} 

无连接字符串。我能以某种方式强制吗?

+0

我想,你应该删除debug文件夹和重建项目。 –

+0

有时Entity Framework在上下文中拥有他自己的连接字符串。检查EF使用您的web.config文件,而不是他的构造函数中的变量。 – AdrienTorris

+0

如果您通过NuGet安装EF,您的默认connectionstring应自动添加到配置文件中。你可以连接到Visual Studio服务器浏览器中的'mysite.database.windows.net'吗? –

回答

2

构造函数改成这样:

public TrackerContext() : base("Name=DefaultConnection") {} 
+0

这工作..我必须做这一步吗?我虽然它是可选的。 – mathkid91

+0

这是说底层的d​​bcontext从哪里获取连接字符串。这一点是这样的,你可以有多个连接字符串到不同的数据库。 –