Asp.net mvc 测试项目可以';无法连接到数据库

Asp.net mvc 测试项目可以';无法连接到数据库,asp.net-mvc,entity-framework,app-config,configuration-files,Asp.net Mvc,Entity Framework,App Config,Configuration Files,我不确定,但我认为我的连接字符串不正确。 情况是这样的。 我有一个带有测试的测试项目。在测试项目中,app.config文件包含与我用于主mvc app web.config文件的连接字符串相同的连接字符串。看起来是这样的: <add name="GiftExchangeEntities" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\GiftExchange.mdf;Initi

我不确定,但我认为我的连接字符串不正确。 情况是这样的。 我有一个带有测试的测试项目。在测试项目中,app.config文件包含与我用于主mvc app web.config文件的连接字符串相同的连接字符串。看起来是这样的:

<add name="GiftExchangeEntities" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\GiftExchange.mdf;Initial Catalog=GiftExchange;Integrated Security=True" providerName="System.Data.SqlClient" />

但是,当我在测试项目中运行测试时,会出现以下异常:

测试方法GiftExchange.Tests.DataLayerTests.giftests.GetAll引发异常: System.Data.DataException:初始化数据库时发生异常。有关详细信息,请参阅InnerException。-->System.Data.Entity.Core.EntityException:基础提供程序在打开时失败。-->System.Data.SqlClient.SqlException:无法将文件“C:\TFS\GifteChange\GifteChange.Tests\bin\Debug\GifteChange.mdf”附加为数据库“GifteChange”

所以我知道这是不正确的,因为这不是GiftExchange.mdf文件所在的位置!它位于伦敦

C:\TFS\GiftExchange\GiftExchange\App\u Data\GiftExchange.mdf


如何更改配置文件中的路径以指向App_数据中的mdf文件,而不使用配置文件中的完整显式路径?

您是否有
Web.Debug.config
执行任何操作?应用程序池是否具有访问
App_Data
的正确安全凭据?您需要告诉它DataDirectory在哪里。看看这个答案@AnthonyChu+1我刚刚注意到这两个目录非常不同,
GiftExchange
vs
GiftExchange.Tests
。我很确定应用程序池可以访问。我在web.debug.config中没有任何内容,只有测试项目的web.config和app.config。是的,目录不同,GifteChange是mvc项目的主要路径,而GifteChange.Tests是测试项目。我尝试将“AttachDbFilename=…\\..\GiftExchange\App\u Data\GiftExchange.mdf”放入App.config文件连接字符串标记中,以使其指向我的数据库,但编译器没有转换…\\