实体层是介于表现层和业务层之间,同时也作为数据载体贯穿了整个项目之间的数据传递,创建实体有很多方法,我们可以手工创建,也可以代码生成引擎等等,我们这里主要应用数据实体模型连接生成:

创建好之后,我们需要引用两个底层的程序集:

然后我们需要在这个类库下新建一个BaseEntity文件夹,并创建一个也叫BaseEntity.cs的公共实体基类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace IA.Entity
{
/// <summary>
/// 实体类基类
/// </summary>
public class BaseEntity
{
/// <summary>
/// 构造方法
/// </summary>
public BaseEntity()
{ }
public virtual void Create(bool Login = true)
{
}
public virtual void Modify(string KeyValue, bool Login = true)
{
}
}
}

  

然后,我们在类库上右键-添加-新建项,创建一个数据实体模型:


选择从我们之前建设好的数据库生成:

得到如图的效果:

这样,我们就把建好的数据库都生成了实体类,但这还不够,我们为了更好的数据传递以及辅助数据库操作,我们需要对IA.tt(IA是你的数据实体模型名称)这个文件进行改造:

打开IA.tt这个文件后,我们查找到namespace <#=code.EscapeNamespace(codeNamespace)#>,然后在这里添加我们需要引入的程序集,如图:

然后在找到<#=codeStringGenerator.NavigationProperty(navigationProperty)#>,并添加帮助操作数据库的方法,如图:

添加代码:

public override void Create(bool Login = true)
{
this.<#=entity.KeyMembers[0].Name#> = CommonHelper.GetGuid();
this.CreateDate = DateTime.Now;
if(Login){
this.CreateUserId = ManageProvider.Provider.Current().UserId;
this.CreateUserName = ManageProvider.Provider.Current().UserName;
}
} public override void Modify(string KeyValue, bool Login = true)
{
this.<#=entity.KeyMembers[0].Name#> = KeyValue;
this.ModifyDate = DateTime.Now;
if(Login){
this.ModifyUserId = ManageProvider.Provider.Current().UserId;
this.ModifyUserName = ManageProvider.Provider.Current().UserName;
}
}

  

在找到public string EntityClassOpening(EntityType entity),替换如图:

替换代码:

public string EntityClassOpening(EntityType entity)
{
// 加入模版标记和主键方法以及继承基类
return string.Format(
CultureInfo.InvariantCulture,
"{4}\r\n{0} {1}partial class {2}{3} : BaseEntity",
Accessibility.ForType(entity),
_code.SpaceAfter(_code.AbstractOption(entity)),
_code.Escape(entity),
_code.StringBefore(" : ", _typeMapper.GetTypeName(entity.BaseType)),
"[PrimaryKey(\""+_code.Escape(entity.KeyMembers[0].Name)+"\")]");
}

  

保存之后,我们就会看到实体类文件发生了变化,到这一步,实体类也算创建完毕了,接下来,就是创建业务层

ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(3)之创建实体层的更多相关文章

  1. ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(13)之会员登录注册

    源码下载地址:http://www.yealuo.com/Sccnn/Detail?KeyValue=c891ffae-7441-4afb-9a75-c5fe000e3d1c 会员中心,是我们与用户交 ...

  2. ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(1)之数据库设计

    本文主要讲解本项目网站所应用到的知识点,及数据库的相关设计: 一.知识点 (1)本项目主要采取ASP.NET MVC的编程模式,相信你已经了解到了MVC的具体含义是什么,这里不再赘述,有不了解的朋友, ...

  3. ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(16)之轻博客

    源码下载地址:http://www.yealuo.com/Sccnn/Detail?KeyValue=c891ffae-7441-4afb-9a75-c5fe000e3d1c 项目到上面一步其实已经算 ...

  4. ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(15)之前台网站页面

    源码下载地址:http://www.yealuo.com/Sccnn/Detail?KeyValue=c891ffae-7441-4afb-9a75-c5fe000e3d1c 本项目主要是一个素材的分 ...

  5. ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(14)之会员中心管理

    源码下载地址:http://www.yealuo.com/Sccnn/Detail?KeyValue=c891ffae-7441-4afb-9a75-c5fe000e3d1c 会员中心,主要包含了会员 ...

  6. ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(9)之系统登录

    前面我们已经做好了一个文章管理功能模块,接下来,我们回头来做登录窗口,登录不仅涉及到登录验证还涉及到登录日志还有缓存时长等. 对于缓存的相关设置,我们已经写好封装在Bobo.Utilities.dll ...

  7. ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(7)之扩展基类和区域创建以及文本编辑配置

    一.扩展基类和区域创建 (1)在应用之前,我们先在表现层创建一个公共的系统扩展文件来(SystemExtension)存放我们需要延伸和扩展的方法类. 在常规的项目系统操作中,我们都需要用到增删查改的 ...

  8. ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(2)之创建项目

    我们在创建项目的时候一定要遵循层次和命名的原则,同时也要有统一的规范,无论是多人项目还是单人项目,能够让人看着一目了然并赏析悦目,做一个有追求的程序员. 例如IA.WebApp是视图控制器层(表现层) ...

  9. ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(8)之文章管理

    到这一步,我们整个项目的核心搭建已经算是完成了,接下来就是我们业务功能的实际应用,也就是表现层的设计和实现,如果你是一个项目负责人,到这一步,接下来的工作就可以交给下面的兄弟去完成了,在这里我们用文章 ...

  10. ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(11)之支付管理及广告管理

    源码下载地址:http://www.yealuo.com/Sccnn/Detail?KeyValue=c891ffae-7441-4afb-9a75-c5fe000e3d1c 本项目属于个人项目,不支 ...

随机推荐

  1. 非接触型手掌静脉识别 PalmSecure™

    静脉识别,使用近红外线读取静脉模式,与存储的静脉模式进行比较,进行本人识别的识别技术.富士通的PalmSecure™,利用该技术,由离开识别装置的位置,使用近红外线拍摄,与预先存储的静脉模式进行比较从 ...

  2. oracle终止数据库Abort

    中止数据库实例, 立即关闭 异常关闭是最主动的关闭类型,并且有如下这些特征: 从shutdown abort命令发布起,禁止建立任何新的oracle连接 当前正在运行的sql语句被终止,无论他们处于什 ...

  3. 《js高级程序设计》6.1.1-6.1.3——数据属性、访问器属性

    数据属性:该属性包含了一个数据值的位置,它包含了4个描述行为的特性:1. [[Configurable]]:表示是否能通过delete删除属性从而重新定义属性,能否修改属性的特性,能否把属性修改为访问 ...

  4. 【vb.net机房收费系统】之sqlhelper 标签: 数据库 2015-05-17 10:47 819人阅读 评论(15)

    在敲机房收费重构版的时候,用到了sqlhelper,当时不知道怎么开始,各种听别人说,张晗说,一定要用sqlhelper,特别好用,我当时没有用balabala~当时一听,哎哎哎,这个高级,要搞一搞, ...

  5. @codeforces - 1186F@ Vus the Cossack and a Graph

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个 n 点 m 边的图(n, m<=10^6),记第 ...

  6. 【CSS3 + 原生JS】移动的标签

    左图为本博客右侧截取的GIF图,右图为代码效果 HTML: <!DOCTYPE html> <html lang="en"> <head> &l ...

  7. SQL 三个表练习(student,teacher,score)

  8. 第25章 Pytorch 如何高效使用GPU

    第25章 Pytorch 如何高效使用GPU 深度学习涉及很多向量或多矩阵运算,如矩阵相乘.矩阵相加.矩阵-向量乘法等.深层模型的算法,如BP,Auto-Encoder,CNN等,都可以写成矩阵运算的 ...

  9. lua在C/C++中使用table生成对应键及值

    int nTop = lua_gettop(L); // 栈内初始数,假设当前为0 lua_newtable(L); // push table lua_pushstring(L,"Line ...

  10. Linux下yum安装Redis

    检验是否有yum源: [root@localhost ~]# yum install redis 显示没有软件包Redis,安装epel仓库(提供一些RHEL/CentOS默认不提供的软件包). [r ...