学习ASP .NET MVC5官方教程总结(五)使用SQL Server LocalDB创建连接字符串
在上一章中,我们创建了MovieDBContext类来连接数据库、处理Movie 对象和数据库记录的映射。但是我们没有指定使用什么数据库,也没指定使用哪个数据库。其实,在我们没有指定数据库的时候,Entity Framework 默认使用LocalDB 。
在本节中我们将介绍如何在Web.config 文件中添加一个数据库连接。
LocalDB 是SQL Server Express 数据库引擎的轻量级版本,LocalDB 运行在SQL Server Express 的特殊执行模式下,允许你使用数据库文件(例如 .mdf 文件)。通常情况下,LocalDB 数据库文件放在解决方案的 App_Data 文件夹下。
SQL Server Express 是不推荐用在 web 应用程序产品中的,其实准确的说,LocalDB 也不能用在 web 应用程序产品中,因为它设计的时候就没考虑和 IIS 一起使用。然而,一个LocalDB数据库可以很简单的迁移到SQL Server 或 SQL Azure。
在Visual Studio 2013(或 2012)中,Visual Studio 默认安装了LocalDB。
默认情况下,Entity Framework 会查找和对象上下文类同名的数据库连接(在这个项目中是 MovieDBContext)。
打开应用程序根目录的 Web.config 文件(不是在Views 目录中的Web.config)。文件位置如下图:
打开文件后,找到 connectionString 节点,在这里环境已经给我们写好了一个例子:
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-MvcMovie-20150428033206.mdf;Initial Catalog=aspnet-MvcMovie-20150428033206;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
在connectionString节点下面添加如下连接字符串:
<add name="MovieDBContext" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True"
providerName="System.Data.SqlClient"/>
数据库连接字符串的名字必须和 DbContext 类同名。因为我们的DbContext的名字叫做MovieDBContext,所以这里数据库连接字符串的名字也是MovieDBContext。
事实上,你不需要添加 MovieDBContext 连接字符串,如果你没有明确指定连接字符串,Entity Framework 会在用户目录创建一个 LocalDB 数据库,名字就是 DbContext 类的全名(在本示例中文件名是 MvcMovie.Models.MovieDBContext)。
这样我们连接字符串就写好了。