创建连接字符串并使用SQL Server LocalDB进行操作

8

当我尝试从Visual Studio 15连接到localdb时,遇到了问题。我已经安装了SQL Server Express 2016。

我按照以下教程操作:http://www.asp.net/mvc/overview/getting-started/introduction/creating-a-connection-string

我创建了模型和上下文(MovieDBContext)类并尝试设置连接:

<connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-MvcMovie-20130603030321.mdf;Initial Catalog=aspnet-MvcMovie-20130603030321;Integrated Security=True" providerName="System.Data.SqlClient" />
    <add name="MovieDBContext"    connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True" providerName="System.Data.SqlClient"
/>

当我尝试访问显示所有电影的页面时:
 public ActionResult Index()
 {
     return View(db.Movies.ToList());
 }

我得到了这个异常: 在此输入图片描述 我尝试像这样编辑连接字符串,但仍然无法正常工作:
  <connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-MvcMovie-20130603030321.mdf;Initial Catalog=aspnet-MvcMovie-20130603030321;Integrated Security=True" providerName="System.Data.SqlClient" />
    <add name="MovieDBContext"   connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True" providerName="System.Data.SqlClient"
/>  </connectionStrings>

当我使用(local)MSSQLLocalDB时,会出现这个异常。

enter image description here

我做错了什么?


3
在Visual Studio中,您可以在“工具”菜单上连接到数据库。您的数据库应该会出现在“服务器资源管理器”中,那里您可以找到正确的连接字符串(connectionString)。 - Henrique Forlani
1
从DbContext继承的类叫什么名字?你的“db”类吗? - Denys Wessels
2
如果您打开 Sql Server Management Studio,您能否登录到 (LocalDb)\v11.0? - Denys Wessels
1
如果您已经有一个数据库文件(.mdf文件),那么您的AttachDbFileName应该指向正确的路径。 - Henrique Forlani
2
@Forlani,他的连接字符串没有问题。他正在使用EF Code First,如果.mdf文件不存在,它将被创建。 - Denys Wessels
1
你可以尝试使用SqlLocalDB实用程序(https://msdn.microsoft.com/en-us/library/hh212961.aspx)进行调查... - da_sann
1个回答

19

MovieDBContext连接字符串中缺少初始目录。 它应该如下所示:

 <add name="MovieDBContext"   connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Movies.mdf;Initial Catalog=Movies;Integrated Security=True" providerName="System.Data.SqlClient"/> 

1
感谢您的工作,.mdb 文件已经创建在 App_Data 目录下。 - Ivan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接