您的位置:首页 > Web前端 > JQuery

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

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

一、M层简单介绍
1、M层很形象的将数据库里面的各个表格映射成了C#当中的类,比如上篇文章创建的用户表:

?
映射成Model类为:

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

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

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

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

?
?
4、至此还缺一个数据库链接,有了数据库链接M层就做完了,貌似很简单。
数据库链接在web.config中实现就可以了,链接名称跟public class SiteDataBaseDbContent : DbContext这里的SiteDataBaseDbContent 名称一致就行,名称一致了codefirst会自己去找这个链接,代码如下:

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

二、本项目M层具体建立操作步骤
M层的主要工作量就在于写数据表对应类,有简单的方法不用自己去写,步骤如下:

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



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



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



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



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



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



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

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



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

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

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

3、创建项目的DbContext文件,最终代码如下:

?
4、创建数据库链接,代码如下:

?
5、删除刚才新建的Model1.edmx文件,最终Models目录如下:



至此项目的M层创建完成,还需要进一步进行修改,具体修改知识介绍如下:

三、Model验证知识讲解
.net mvc中前端输入label提示及输入验证都是在M层实现的。

1、label输入提示
[DisplayName("新闻标题")]

public string TITLE { get; set; }

2、输入验证
Model类中可以添加的验证标记:

1. 必填字段

[Required(ErrorMessage = "{0}不能为空")]

public string FirstName { get; set; }

2. 字段长度

至多n位:

[StringLength(160)]

public string FirstName { get; set; }

要求至少n位:

[StringLength(160, MinimumLength=3)]

public string FirstName { get; set; }

3. 正则验证

[RegularExpression(@”[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}”)]

public string Email { get; set; }

4. 范围

[Range(35,44)]

public int Age { get; set; }

小数的情况:

[Range(typeof(decimal), “0.00”, “49.99”)]

public decimal Price { get; set; }

5. 服务端参与的验证

[Remote(“CheckUserName”, “Account”)]

public string UserName { get; set; }

然后在AccountController里指定一个CheckUserName方法:

?
6. 比较

[RegularExpression(@”[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}”)]

public string Email { get; set; }

[Compare(“Email”)]

public string EmailConfirm { get; set; }

7. 自定义错误消息

正则:

[RegularExpression(@”[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}”,
ErrorMessage=”Email doesn’t look like a valid email address.”)]

public string Email { get; set; }

普通文本:

[Required(ErrorMessage=”Your last name is required”)]

[StringLength(160, ErrorMessage=”Your last name is too long”)]

public string LastName { get; set; }

占位符:

[Required(ErrorMessage=”Your {0} is required.”)]

[StringLength(160, ErrorMessage=”{0} is too long.”)]

public string LastName { get; set; }

3、常用正则表达式整理
数字:"^[0-9]*$"。

n位的数字:"^\d{n}$"。

至少n位的数字:"^\d{n,}$"。

m~n位的数字:。"^\d{m,n}$"

零和非零开头的数字:"^(0|[1-9][0-9]*)$"。

有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。

有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。

非零的正整数:"^\+?[1-9][0-9]*$"。

非零的负整数:"^\-[1-9][]0-9"*$。

长度为3的字符:"^.{3}$"。

由26个英文字母组成的字符串:"^[A-Za-z]+$"。

由26个大写英文字母组成的字符串:"^[A-Z]+$"。

由26个小写英文字母组成的字符串:"^[a-z]+$"。

由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。

由数字、26个英文字母或者下划线组成的字符串:"^\w+$"。

验证用户密码:"^[a-zA-Z]\w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。

验证是否含有^%&’,;=?$\"等字符:"[^%&’,;=?$\x22]+"。

只能输入汉字:"^[\u4e00-\u9fa5]{0,}$"

验证Email地址:"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"。

验证InternetURL:"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$"。

验证电话号码:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$"正确格式为:"XXX-XXXXXXX"、"XXXX- XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。

验证身份证号(15位或18位数字):"^\d{15}|\d{18}$"。

验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式为:"01"~"09"和"1"~"12"。

验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确格式为;"01"~"09"和"1"~"31"。

至此本文完毕

点击下载Model层代码

技术交流QQ:806693619
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐