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数据表,并且有了一个简单的页面来显示这个表中的内容。下一步,我们将增加一个追加数据的方法和一个追加数据的视图,并且向数据库中追加一些数据。
可以发现自动代码把我们以前要做的事情都做了,我们以后的趋势就是修改修改。越来越轻松了!