ASP.Net MVC开发基础学习笔记(7):数据查询页面

作者:湖北诺贝特科技有限公司  来源:www.nbt158.com未知  发布时间:2017-09-03 12:53:23
ASP.Net MVC开发基础学习笔记(7):数据查询页面

前面铺垫了那么多,今天我们就用MVC5 + EF6 + Bootstrap3来正式创建一个基本查询页面。

为什么从查询页面开始?嘿嘿,因为小弟的.Net生涯就是从查询页面开始的,记得正式工作的第一个月就是各种模块的查询。先做查询有什么好处?首先查询只读数据,不写数据。对数据库本身的数据安全不造成影响也不怕写入脏数据的麻烦。其次增删改查这四个操作里面,查询的难度应该是最小的,不用考虑事务流程等方面的问题。

本节最后将会生成如下页面:

\

创建Model

关于Model、数据库上下文、Entity Framework,本系列教程前面已经有介绍

在Models文件夹下创建一个类,命名为Worker.cs,这个类就是我们这里要用到的Model。代码如下:

namespace SlarkInc.Models { public enum Sex { Male, Female } public class Worker { public int ID { get; set; } public string LastName { get; set; } public string FirstName { get; set; } public Sex Sex { get; set; } public double? Rating { get; set; } } }

为了方便说明,加入行号,如果想要复制代码,请点击左上角的小图标就会出现不带行号的代码。在Worker类的上面,第3行,创建了一个Sex的枚举类型,保证Sex只有Male和Female两种取值。9到13行中Worker类用自动属性的方法定义了5个属性,其中Rating属性前面有个问号表示这个属性是nullable,可以是null。

创建数据库上下文DbContext

这里我们用Code First方法创建数据库表。这个方法简单点说就是先创建Model再根据Model生成数据库表。

为了方便起见,这里用的数据库是Visual Studio自带的LocalDb。

数据库上下文,就是我们这里的数据访问层,根据Model对数据库表进行不同的操作。因此我们首先在项目中创建一个数据访问层文件夹,命名为DAL。然后,在DAL文件夹中创建Model对应的数据库访问上下文类,命名为CompanyContext。写入代码如下:

using System.Data.Entity; using SlarkInc.Models; using System.Data.Entity.ModelConfiguration.Conventions; namespace SlarkInc.DAL { public class CompanyContext : DbContext { public CompanyContext() : base("CompanyContext") { } public DbSet Workers {get;set;} protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Conventions.Remove(); } } }

因为我们这里数据库访问要用Entity Framework, 所以第1行要引入System.Data.Entity。第7行,我们的数据库上下文继承EF中的DbContext基类。第9行表示

CompanyContext 继承基类DbContext的构造函数。第13行表示我们的Model Worker和 CompanyContext中的数据集Workers对应。第15到18行定义了一个事件

OnModelCreating,这个事件在我们使用的Code First方法在数据库中创建数据表时触发。第17行的代码的作用是使我们创建出来的数据库表名字都是单数,不是复数。也就是说将来的数据库表名是Worker而不是Workers。这也是我们创建数据库表的习惯命名方法。

然后在Web.config文件里面加入这个数据库上下文要用到的数据库连接字符串。如下面的代码所示,在Web.config文件中找到元素。然后在元素内找到 元素。最后在元素内加入如下元素。


这样我们的数据库上下文CompanyContext就可以用这个连接字符串来访问数据库了。解释一下元素里的内容。name="CompanyContext"是连接字符串的名字,这个要和CompanyContext.cs 里的base("CompanyContext")函数的参数一样,这样初始化数据库上下文的时候才能读到字符串。Data Source=(LocalDb)\v11.0表示使用的数据库种类和版本。Catalog=Company是数据库的名字。Integrated Security=SSPI是验证方式。AttachDBFilename=|DataDirectory|\Company.mdf表示在我们这里,数据库文件存在 ~\App_Data\Company.mdf 下。providerName="System.Data.SqlClient"表示我们这里要用的数据库连接器,或者叫数据库驱动。

然后我们还要在Web.config中声明数据库上下文。在中找到元素。在元素中找到元素。在元素中写入如下元素。


type="SlarkInc.DAL.CompanyContext, SlarkInc"中的SlarkInc.DAL.CompanyContext表示这个CompanyContext的NameSpace和类名。逗号后面的SlarkInc表示这个CompanyContext在SlarkInc.dll中。

这样我们就把CompanyContext添加到了Entity Framework的上下文中。

创建初始化数据

为了方便测试,我们需要在数据库创建好之后给其中添加一些数据。因此我们来创建一个数据初始化类来做这个工作。在DAL文件夹中创建一个类,命名为CompanyInitializer.cs。写入如下代码:

using System.Collections.Generic; using SlarkInc.Models; namespace SlarkInc.DAL { public class CompanyInitializer : System.Data.Entity.DropCreateDatabaseAlways { protected override void Seed(CompanyContext context) { var students = new List { new Worker{FirstName="Andy",LastName="George",Sex = Sex.Male}, new Worker{FirstName="Laura",LastName="Smith",Sex = Sex.Female}, new Worker{FirstName="Jason",LastName="Black",Sex = Sex.Male}, new Worker{FirstName="Linda",LastName="Queen",Sex = Sex.Female}, new Worker{FirstName="James",LastName="Brown", Sex = Sex.Male} }; students.ForEach(s => context.Workers.Add(s)); context.SaveChanges(); } } }

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:鄂州SEO http://ezhou.raoyu.net


上一篇:提高WEB用户体验至关重要的几点
下一篇:最后一页