欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Asp.net mvc 数据访问层详情

程序员文章站 2022-04-14 10:29:04
理解了一些概念,本节开始尝试创建属于自己的数据访问层,说道数据访问层那必须有咯(数据集合也算,此处以数据库为例),没有数据库就没有数据访问层。 1、先创建属于自己的数据库 打开已经安装好的sql s...

理解了一些概念,本节开始尝试创建属于自己的数据访问层,说道数据访问层那必须有咯(数据集合也算,此处以数据库为例),没有数据库就没有数据访问层。

1、先创建属于自己的数据库

打开已经安装好的sql server 2005数据库引擎,输入用户名和密码后连接并创建数据库“schoolerpdb”:

Asp.net mvc 数据访问层详情

2、创建连接字符串(connectionstring)

和winfrom一样连接数据库类似,打开项目中的web.config文件,在标签内添加如下代码:

     connectionstring="data source=(local);initial catalog=schoolerpdb;intergrated security=true;" 
     providername="system.data.sqlclient"/>
Asp.net mvc 数据访问层详情
3、添加ef引用
右击项目->管理nuget包,选择entity framework并点击安装,我用的是vs2012,自带该功能,如果你版本低于2012 就需要安装。

Asp.net mvc 数据访问层详情

4、创建数据访问层
在项目中新建一个“data access layer”文件夹,并在该文件夹中新建schoolerpdal类,并在该类中添加引用using system.data.entity;该类继承dbcontext.

Asp.net mvc 数据访问层详情

5、创建teacher类的主键
打开前几节的类,添加下面的引用using system.componentmodel.dataannotations; 添加teacher的属性,用key关键字表示主键。

    public class teacher
    {
        [key]//作用是将id设置为teacher的主键
        public int teacherid { get; set; }
        public string teachername { get; set; }
        public int teacherage { get; set; }
    }  
Asp.net mvc 数据访问层详情

6、定义映射关系
在schoolerpdal类中添加引用 using m_一.models;在该类中重写onmodelcreating 方法:

//
protected override void onmodelcreating(dbmodelbuilder modelbuilder)
{
modelbuilder.entity().totable("tblteacher");
base.onmodelcreating(modelbuilder);
} 
目的是让程序运行时候自动生成表:tblteacher
Asp.net mvc 数据访问层详情

7、在数据库中添加新的属性teacher

//new 属性 teachers
public dbset teachers { get; set; } 
dbset表示数据库中能够被查询的所有的teacher

Asp.net mvc 数据访问层详情

8、更改以前写过的业务层代码,并从数据库中获取数据,打开teacherbusinesslayer类,引入 using mvc_一.data_access_layer; 修改getteacher方法:

        public list getteacher()
        {
            schoolerpdal schooldal = new schoolerpdal();
            return schooldal.teachers.tolist();
        }  
Asp.net mvc 数据访问层详情

9、运行测试后并打开刚才创建的数据库,查看其表

Asp.net mvc 数据访问层详情
Asp.net mvc 数据访问层详情

10、在数据库表tblteacher中自行插入一些数据,并运行测试:

Asp.net mvc 数据访问层详情Asp.net mvc 数据访问层详情

a | explian:
1、dbset数据集是数据库方面的概念,指的是可以在数据库中查询的实体的集合,当执行linq查询时,dbset对象能够将查询进行内部转换,并触发数据库。
在该实例中,数据集是teachers,是所有teacher的实体的集合。当每次需要访问teacher时,会获取“tblteacher”的所有记录,并转换为teahcer对象,返回teacher对象集。
2、在该实例中connectionstring(连接字符串)的名称和数据访问层的类名是相同的,都是schoolerpdal,因此会自动映射,开发者不需要进行手动映射,方便快捷。