ASP.NET MVC 5 - 创建连接字符串(Connection String)并使用SQL Server LocalDB-阿里云开发者社区

开发者社区> 开发与运维> 正文

ASP.NET MVC 5 - 创建连接字符串(Connection String)并使用SQL Server LocalDB

简介:

您创建的MovieDBContext类负责处理连接到数据库,并将Movie对象映射到数据库记录的任务中。你可能会问一个问题,如何指定它将连接到数据库? 实际上,确实没有指定要使用的数据库,Entity Framework将预设值使用的LocalDB。 在本节中,我们将显式地在Web.config文件中,添加应用程序的连接字符串(connection string)。

SQL Server Express LocalDB

LocalDB的是一个SQL Server Express轻量级版本的数据库引擎。 它在用户模式下启动、执行。LocalDB的运行在一个特殊的SQL Server Express的执行模式,所以允许您使用MDF文件数据库。通常情况下,LocalDB的数据库文件都保存在web项目的App_Data文件夹下面。

注意:在生产环境的Web应用程序中,我们不推荐您使用SQL Server Express。 尤其, LocalDB不应该被用于Web应用程序的生产环境,因为它设计之初不要求使用IIS。 然而,LocalDB的数据库能够很容易地迁移??到SQL Server或SQL Azure中。

备注:在 Visual Studio 2013 (Visual Studio 2012), LocalDB 默认会被安装.

默认的,Entity Framework的看起来命名为为对象上下文类(如本项目MovieDBContext)的相同的一个连接字符串。有关详细信息,请参见SQL Server Connection Strings for ASP.NET Web Applications

打开应用程序根目录的Web.config文件。(不是View文件夹下的Web.config文件。)打开红色高亮标记的Web.config文件。

clip_image002

找到 <connectionStrings>  :

clip_image004

Web.config文件中的<connectionStrings>内添加下面的连接字符串。

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

下面的例子里显示了部分Web.config文件中所新添加的连接字符串:

<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"/>

这两个连接字符串非常相似。第一个连接字符串命名为DefaultConnection的,被用于控制可以访问应用程序的成员鉴权数据库。您已添加的连接字符串 (connection string) 显示位于App_Data文件夹中的 一个Movie.mdf文件,数据库命名为Movie.mdf。 在本教程中,我们将不使用会员数据库有关会员,认证和安全性的更多信息,请参阅教程: Deploy a Secure ASP.NET MVC app with Membership, OAuth, and SQL Database to a  Windows Azure Web Site

连接字符串(connection string)的名称必须匹配DbContext类的名称。

using System;using System.Data.Entity;namespace MvcMovie.Models{publicclass Movie    {publicint ID { get; set; }publicstring Title { get; set; }public DateTime ReleaseDate { get; set; }publicstring Genre { get; set; }publicdecimal Price { get; set; }    }publicclass MovieDBContext : DbContext    {public DbSet<Movie> Movies { get; set; }    }}

实际上, 您并不需要新增MovieDBContext连接字符串。 如果没有指定一个连接字符串,Entity Framework将会在用户目录中创建一个LocalDB数据库的DbContext类的(如本例中MvcMovie.Models.MovieDBContext)。您也数据库命名为任何你喜欢的东西,只要它具有.MDF的后缀。例如,我们可以命名数据库MyFilms.mdf

接下来,您将创建一个新的MoviesController类,您可以用它来??展示电影数据,并允许用户创建新的影片列表。



本文转自 powertoolsteam 51CTO博客,原文链接:http://blog.51cto.com/powertoolsteam/1350332,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章