我正在构建一个包含Entity Framework的Web应用程序。在我的解决方案中,我有2个项目。 1个数据访问项目,其中包含我的DbContext类:
public class MyContext : DbContext
{
public MyContext() : base("MyContext")
{
Database.SetInitializer<MyContext>(null);
Configuration.ProxyCreationEnabled = false;
Configuration.LazyLoadingEnabled = false;
}
}
另一个用于设置我想要使用的WebApi的项目,还包含一个web.config。在我的web.config中,我有一个如下所示的连接字符串:
<connectionStrings>
<add name="MyContext" connectionString="Data Source=ServerPcName\SqlServerName;Initial Catalog=UCP;Integrated Security=True" providerName="System.Data.EntityClient"/>
</connectionStrings>
连接字符串应该是正确的。我按照接下来的步骤检索了我的连接字符串。首先,我打开了服务器资源管理器(视图 - &gt;服务器资源管理器),并在服务器资源管理器中设置了与数据库的连接。接下来,我右键单击我的连接,然后单击“修改连接...”。在对话框中,我点击了“高级...”按钮。在下一个对话框中,我在最低编辑框中选择了连接字符串并将其粘贴到我的web.config中。
现在我尝试使用下一个命令更新我的数据库:
Update-Database -StartUpProjectName WebServices
此命令返回下一个错误:
Directory lookup for the file [rootpath]\App_Data\UcpContext.mdf" failed with the operating system error 2(The system cannot find the file specified.).
CREATE DATABASE failed. Some file names listed could not be created. Check related errors.
在我看来,它试图连接或创建一个假设位于ASP.NET文件夹App_Data中的数据库,但我希望Entity Framework连接到我的服务器。我在这里做错了什么或导致Entity Framework没有看到或想要正确使用我的连接字符串的问题是什么?
答案 0 :(得分:0)
在构造函数中使用不同的字符串:
base("name=MyContext")