分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发2-Model层建立

发布时间:2023-09-06 01:08责任编辑:彭小芳关键词:easyui

上篇(asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发1-准备工作)文章讲解了开发过程中的准备工作,主要创建了项目数据库及项目,本文主要讲解项目M层的实现,M层这里讲的主要是通过Codefirst方式实现的。

一、M层简单介绍
1、M层很形象的将数据库里面的各个表格映射成了C#当中的类,比如上篇文章创建的用户表:
?
1
2
3
4
5
6
7
8
9
10
11
12
CREATE TABLE [dbo].[SYS_USER](
[ID] [nvarchar](36) NOT NULL,--ID
[USERNAME] [nvarchar](20) NULL,--用户名
[REALNAME] [nvarchar](30) NULL,--真实姓名
[USERPASS] [nvarchar](32) NULL,--用户密码
[RULEID] [nvarchar](36) NULL,--角色ID
[RULENAME] [nvarchar](60) NULL,--角色名称
CONSTRAINT [PK_SYS_USER] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

映射成Model类为:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public partial class SYS_USER
{
public string ID { get; set; }
[Required(ErrorMessage = "{0}不能为空")]
[DisplayName("用户名")]
public string USERNAME { get; set; }
[Required(ErrorMessage = "{0}不能为空")]
[DisplayName("真实姓名")]
public string REALNAME { get; set; }
[Required(ErrorMessage = "{0}不能为空")]
[DisplayName("用户密码")]
public string USERPASS { get; set; }
[Required(ErrorMessage = "{0}不能为空")]
[DisplayName("所属角色")]
public string RULEID { get; set; }
[DisplayName("所属角色")]
public string RULENAME { get; set; }
}

类名跟表明对应,属性名跟字段名对应。到这一般实际中表跟类是没有关系的,还需进一步配置。

2、通过EntityTypeConfiguration将类跟数据库里面的表依依做对应

通过EntityTypeConfiguration可以设置类跟数据库里面哪个表做对应,本步好像可以不做也行,默认有对应关系,默认对应关系中数据库表后面好像得有个s,具体对应代码如下:

?
1
2
3
4
5
6
7
public class SYS_USERMapping : EntityTypeConfiguration<SYS_USER>
{
public SYS_USERMapping()
{
ToTable("dbo.SYS_USER");
}
}

不难看出ToTable("dbo.SYS_USER")这里指定了对应数据库里面的哪个表格。

3、使用DbContext做统筹

以上两步介绍的必须DbContext做个关联才行,codefirst中所有对数据库表的增删改查都必须通过DbContext提供的方法去做。具体代码如下:

?
1
2
3
4
5
6
7
8
9
public class SiteDataBaseDbContent : DbContext
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new SYS_USERMapping());
base.OnModelCreating(modelBuilder);
}
public DbSet<SYS_USER> SYS_USER { get; set; }
}
?
1
modelBuilder.Configurations.Add(new SYS_USERMapping());跟第二条对应。
4、至此还缺一个数据库链接,有了数据库链接M层就做完了,貌似很简单。

数据库链接在web.config中实现就可以了,链接名称跟public class SiteDataBaseDbContent : DbContext这里的SiteDataBaseDbContent 名称一致就行,名称一致了codefirst会自己去找这个链接,代码如下:

?
1
2
3
<connectionStrings>
<add name="SiteDataBaseDbContent" connectionString="Data Source=.;Initial Catalog=SiteDataBase;Persist Security Info=True;User ID=sa;Password=t145879" providerName="System.Data.SqlClient" />
</connectionStrings>

M层的相关知识简单的就这些了,能满足一般项目需求。

二、本项目M层具体建立操作步骤

M层的主要工作量就在于写数据表对应类,有简单的方法不用自己去写,步骤如下:

在解决方案资源管理器的Models文件夹右键点击,选择添加-》新建项菜单,如下图:

打开新建对话框,左侧选择数据菜单,右侧选择ADO.NET实体数据模型,然后点击添加按钮,如下图:

然后选择从数据库生成,然后点击下一步,如下图:

然后点击新建链接按钮,根据你数据库配置情况建立数据库链接,如下图:

数据库链接创建成功后点击下一步按钮,然后选择全部表格,如下图:

最后点击完成按钮即可,此时所有表对应的类都已经生成,如下图:

说明:这里的Model1.edmx只是临时使用文件,M层创建完后删除就行。

1、创建项目的CodeFirst Model类

在解决方案资源管理器的Models文件夹右键点击,选择添加-》类菜单,如下图:

创建一个名为DatabaseModels的类文件。然后将Model1.tt下面的类都考入DatabaseModels文件中,代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
namespace SiteDataBase.Models
{
public partial class SYS_USER
{
public string ID { get; set; }
public string USERNAME { get; set; }
public string REALNAME { get; set; }
public string USERPASS { get; set; }
public string RULEID { get; set; }
public string RULENAME { get; set; }
}
public partial class SYS_ROLE
{
public string ID { get; set; }
public string NAME { get; set; }
public string ROLEDESC { get; set; }
public string SHOWORDER { get; set; }
public string LOCKSTATE { get; set; }
public string POWERLIST { get; set; }
public Nullable<System.DateTime> CREATETIME { get; set; }
public string CREATEIP { get; set; }
public string CREATEUSER { get; set; }
public Nullable<System.DateTime> MODIFYTIME { get; set; }
public string MODIFYIP { get; set; }
public string MODIFYUSER { get; set; }
}
}
2、创建数据库表跟类对应关系代码EntityAnnotations.cs

上面代码只是列举了两个,将其他代码也必须考入DatabaseModels文件中,第二步是根据类创建数据库表跟类的对应关系类:EntityAnnotations.cs,具体代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
namespace SiteDataBase.Models
{
public class SYS_ROLEMapping : EntityTypeConfiguration<SYS_ROLE>
{
public SYS_ROLEMapping()
{
ToTable("dbo.SYS_ROLE");
}
}
public class SYS_USERMapping : EntityTypeConfiguration<SYS_USER>
{
public SYS_USERMapping()
{
ToTable("dbo.SYS_USER");
}
}
}

同理所有表格都必须做对应。

3、创建项目的DbContext文件,最终代码如下:
?
1
2
3
4
5
6
7
8
9
10
11
12
我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved