MVC神韵---你想在哪解脱!(九)

与SQL Server Express结合使用

我们在前面创建了一个MovieDBContext类,用来连接数据库,并将数据库中的记录映射到Movie对象。你也许会问一个问题,怎样定义数据库连接?接下来我们通过在web.config文件中增加一些连接信息来定义一个数据库的连接。

打开应用程序根目录下的Web.config文件(请注意不是Views文件夹下的Web.config文件),如图

在Web.config文件的<connectionStrings>元素中追加类似如下所示的连接字符串。 

<configuration>

  <connectionStrings>

    <add name="ApplicationServices"

         connectionString="data source=.\SQLEXPRESS;Integrated

         Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;

User Instance=true"

         providerName="System.Data.SqlClient" />

    <add name="MovieDBContext"

         connectionString=" Data Source=.\SQLEXPRESS;

Initial Catalog=Movies;Persist Security Info=True;

User ID=aaa;Password=aaaaaaa "

         providerName="System.Data.SqlClient" />

  </connectionStrings>

connectionString属性的值表示我们想要使用SQL Server Express的一个本地实例中的Movies数据库。当你安装Visual Web Developer Express的时候,安装过程中也会同时自动在你的计算机中安装SQL Server Express,你可以利用它来进行有关数据库的管理工作。运行应用程序,在浏览器中输入“http://localhost:xxxx/Movies”,浏览器中将会显示一张空的电影列表。

EF code-first如果发现使用我们提供的连接字符串而连接到的数据库中没有“Movies”数据库,它将自动为我们创建一个。你可以在类似“C:\Program Files\Microsoft SQL \MSSQL10.SQLEXPRESS\MSSQL\DATA”这样的SQL Server的安装目录下去查看是否该数据库已被创建。

另外注意,我们采用如下所示的代码创建了一个Movie实体模型。

using System;

using System.Data.Entity;

namespace MvcMovie.Models

{

    public class Movie

    {

        public int ID { get; set; }

        public string Title { get; set; }

        public DateTime ReleaseDate { get; set; }

        public string Genre { get; set; }

        public decimal Price { get; set; }

    }

    public class MovieDBContext : DbContext

    {

        public DbSet<Movie> Movies { get; set; }

    }

}

如您所见,当我们第一次使用MoviesController控制器类来访问MovieDBContext所指向的实例时,EF可以自动为你创建一个新的Movies数据库,并且将MovieDBContext类的Movies属性映射到一个新的Movies表,并且自动将它创建。这个表中的每一行被映射到一个新的Movie类的实例,Movies表的每一列被映射到Movie类的一个属性。

你可以使用SQL Server Management Studio来查看使用模型创建出来的数据库与数据表。

Windows的开始菜单中打开SQL Server Management Studio,并且连接到Web.config中所配置的数据库

点击“连接”按钮进行连接,查看数据库,可以看见Movies数据库与数据表已被创建

鼠标右击Movies数据表,并且点击设计

你可以看见Movies表中各字段的属性,其中ID字段被自动设定为自增长主键

 

这里请注意Movies表中各字段是如何映射到Movie类中各属性上的。EF code-fist自动在你创建的Movie类的基础上创建了这张Movies数据表,往来于实体模型与SQL Server服务器之间。你现在已经可以访问数据库中的Movies数据表,并且有了一个简单的页面来显示这个表中的内容。下一步,我们将增加一个追加数据的方法和一个追加数据的视图,并且向数据库中追加一些数据。

 可以发现自动代码把我们以前要做的事情都做了,我们以后的趋势就是修改修改。越来越轻松了!

 

posted @ 2013-06-16 12:58  天山式神剑  阅读(453)  评论(1编辑  收藏  举报