ASP.NET + EasyUI三层架构实现增删改查之一:实体层的构建

有段时间没写博客了,今天想写点东西,决定跟大家分享一下如何利用EasyUI和ASP.NET构建一个基本的应用程序,实现数据库的增删改查等基本操作。首先需要声明,本系列博客只是搭建一个基本的三层架构,即Model、DAL、BLL和UI,不会涉及到设计模式中的抽象工厂模式之类的东西,主要是为了方便大家理解,在真正做项目的时候,还是希望大家能够事先定义好工厂、接口之列的东西,以此来降低系统的耦合性。
三层架构大家应该不陌生,还不了解的同志也可以自行百度。基本的三层架构由四个类库构成,即Model(Entity)层、DAL层、BLL层、UI层。如下如所示:
ASP.NET + EasyUI三层架构实现增删改查之一:实体层的构建
Model层是对数据库中数据表的一对一映射,它的作用在我看来只有一个,那就是被当做一种数据类型进行参数传递。举个例子,我想定义一个添加学生信息的函数,如果还是用基本数据类型数据作为参数的话,那么函数就得这样写:

        public int AddStudentInfo(string id, string name, string gender, int? age, DateTime? birthday, string phoneNumber, string contactAddress)
        {
            //TODO:具体代码
        }

这个函数参数太多,既不便于理解,也不利于扩展,因此我们可以考虑建立一个实体类,把这个实体类当做参数进行参数传递,实体类代码如下所示:

    public class StudentModel
    {
        /// <summary>
        /// 学号
        /// </summary>
        public string Id { get; set; }

        /// <summary>
        /// 姓名
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 性别
        /// </summary>
        public string Gender { get; set; }

        /// <summary>
        /// 年龄
        /// </summary>
        public int? Age { get; set; }

        /// <summary>
        /// 生日
        /// </summary>
        public DateTime? Birthday { get; set; }

        /// <summary>
        /// 电话号码
        /// </summary>
        public string PhoneNumber { get; set; }

        /// <summary>
        /// 联系地址
        /// </summary>
        public string ContactAddress { get; set; }
    }

相对应的添加学生信息的函数可以这么写:

        public int AddStudentInfo(StudentModel model)
        {
            //TODO:具体代码
        }

如果你的数据库中还有其他数据表的话,逐一建立相应的类与之对应就行了。本系列博客的测试数据用的是宗地、界址点、界址线的属性数据,后续的博客也会用到,其具体代码如下:
宗地类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EasyUIApp.Entity
{
    public class CadastreEntity
    {
        /// <summary>
        /// 编号
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 标识码
        /// </summary>
        public int? BSM { get; set; }

        /// <summary>
        /// 要素代码
        /// </summary>
        public string YSDM { get; set; }

        /// <summary>
        /// 地块编码
        /// </summary>
        public string DKBM { get; set; }

        /// <summary>
        /// 地块类别
        /// </summary>
        public string DKLB { get; set; }

        /// <summary>
        /// 地块东至
        /// </summary>
        public string DKDZ { get; set; }

        /// <summary>
        /// 地块西至
        /// </summary>
        public string DKXZ { get; set; }

        /// <summary>
        /// 地块南至
        /// </summary>
        public string DKNZ { get; set; }

        /// <summary>
        /// 地块北至
        /// </summary>
        public string DKBZ { get; set; }

        /// <summary>
        /// 指界人姓名
        /// </summary>
        public string ZJRXM { get; set; }
    }
}

界址点类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EasyUIApp.Entity
{
    public class BoundaryPointEntity
    {
        /// <summary>
        /// 编号
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 标识码
        /// </summary>
        public int? BSM { get; set; }

        /// <summary>
        /// 要素代码
        /// </summary>
        public string YSDM { get; set; }

        /// <summary>
        /// 界址点号
        /// </summary>
        public string JZDH { get; set; }

        /// <summary>
        /// 界标类型
        /// </summary>
        public string JBLX { get; set; }

        /// <summary>
        /// 界址点类型
        /// </summary>
        public string JZDLX { get; set; }

        /// <summary>
        /// 地块编码
        /// </summary>
        public string DKBM { get; set; }

        /// <summary>
        /// X坐标值
        /// </summary>
        public float? XZBZ { get; set; }

        /// <summary>
        /// Y坐标值
        /// </summary>
        public float? YZBZ { get; set; }
    }
}

界址线类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EasyUIApp.Entity
{
    public class BoundaryLineEntity
    {
        /// <summary>
        /// 编号
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 地块编码
        /// </summary>
        public string DKBM { get; set; }

        /// <summary>
        /// 标识码
        /// </summary>
        public int? BSM { get; set; }

        /// <summary>
        /// 要素代码
        /// </summary>
        public string YSDM { get; set; }

        /// <summary>
        /// 界线性质
        /// </summary>
        public string JXXZ { get; set; }

        /// <summary>
        /// 界址线类别
        /// </summary>
        public string JZXLB { get; set; }

        /// <summary>
        /// 界址线位置
        /// </summary>
        public string JZXWZ { get; set; }

        /// <summary>
        /// 界址线号
        /// </summary>
        public string JZXH { get; set; }

        /// <summary>
        /// 起界址点号
        /// </summary>
        public string QJZDH { get; set; }

        /// <summary>
        /// 终界址点号
        /// </summary>
        public string ZJZDH { get; set; }

        /// <summary>
        /// 界址线说明
        /// </summary>
        public string JZXSM { get; set; }

        /// <summary>
        /// 毗邻地物权利人
        /// </summary>
        public string PLDWQLR { get; set; }

        /// <summary>
        /// 毗邻地物指界人
        /// </summary>
        public string PLDWZJR { get; set; }
    }
}

到此为止实体层建立完毕,下一篇博客将会讲解数据访问层的构建。

上一篇:easyui权限管理


下一篇:对easyui-validatebox的验证类型的扩展,值必须在某个区间