EF工作,但我找不到数据库(但只在测试环境中)

时间:2016-12-07 18:10:54

标签: entity-framework asp.net-mvc-5

我的三个环境都采取了不同的行动。

EF带来了我选择的MVC网站项目模板,我并没有搞砸它。我的App_Data文件夹中有一个mdf文件。位置和文件名由我假设的nuget安装程序确定。身份框架使用它。给你一些背景信息。

我的web.config ef连接字符串是:

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-AACOMvc-20160730112925.mdf;Initial Catalog=aspnet-AACOMvc-20160730112925;Integrated Security=True" providerName="System.Data.SqlClient" />

这是模板/安装程序提供的连接字符串。

本地计算机

有效。如果我搞乱连接字符串或mdf文件名,它就会中断。所以我知道它正在击中那个文件。

测试环境

有效。有趣,因为我没有公开App_Data文件夹!我搜遍了整个那个盒子寻找mdf(它创建了吗?)但是没有一个。如果我在web.config中注释掉连接字符串,它仍然有效!它是&#34;聪明&#34;和&#34;鬼鬼祟祟&#34;而且我不喜欢它! :)

生产环境

它不起作用。即使我复制了App_Data文件夹,它仍然会失败并且找不到&#34;文件&#34;错误。

这个问题主要关注测试环境。如果我能知道它是如何工作的,我想我会更接近于它在生产中工作。

1 个答案:

答案 0 :(得分:0)

我记得我通过将EF连接字符串更改为sql server实例而不是sql server文件来解决此问题。 EF甚至没有在数据库中创建任何表b / c我没有定义任何实体。