惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
AWS News Blog
AWS News Blog
V
Vulnerabilities – Threatpost
D
Darknet – Hacking Tools, Hacker News & Cyber Security
量子位
博客园 - 叶小钗
AI
AI
T
Tor Project blog
Forbes - Security
Forbes - Security
W
WeLiveSecurity
博客园_首页
爱范儿
爱范儿
J
Java Code Geeks
B
Blog
G
GRAHAM CLULEY
aimingoo的专栏
aimingoo的专栏
Cloudbric
Cloudbric
C
CXSECURITY Database RSS Feed - CXSecurity.com
TaoSecurity Blog
TaoSecurity Blog
L
LINUX DO - 热门话题
阮一峰的网络日志
阮一峰的网络日志
有赞技术团队
有赞技术团队
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Simon Willison's Weblog
Simon Willison's Weblog
云风的 BLOG
云风的 BLOG
Google DeepMind News
Google DeepMind News
H
Help Net Security
博客园 - 三生石上(FineUI控件)
C
Cisco Blogs
C
Cybersecurity and Infrastructure Security Agency CISA
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
P
Palo Alto Networks Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Recent Commits to openclaw:main
Recent Commits to openclaw:main
博客园 - 司徒正美
The Last Watchdog
The Last Watchdog
Blog — PlanetScale
Blog — PlanetScale
T
The Blog of Author Tim Ferriss
S
Secure Thoughts
Spread Privacy
Spread Privacy
F
Fortinet All Blogs
月光博客
月光博客
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
H
Hackread – Cybersecurity News, Data Breaches, AI and More
A
About on SuperTechFans
Security Latest
Security Latest
Webroot Blog
Webroot Blog
Scott Helme
Scott Helme
Hugging Face - Blog
Hugging Face - Blog

博客园 - 似水流年-johnhuo

架构师向左,项目经理向右?? 今天迈出第一步,开始了解iphone开发 学习objective-c的一些特殊的地方 信息发布系统 Jquery+MVC架构开发(8)DAL层的补充 信息发布系统 Jquery+MVC架构开发(7) Controller层 . 信息发布系统 Jquery+MVC架构开发(6)BLL层提供WCF 服务 . 信息发布系统 Jquery+MVC架构开发(5) DAL层 信息发布系统 Jquery+MVC架构开发(3) 解决方案创建 信息发布系统 Jquery+MVC架构开发(2) 在EA下进行数据库设计 信息发布系统 Jquery+MVC架构开发(1) 需求分析和架构构思 c# 设计模式(三)行为型 c# 设计模式(二)结构型 c# 设计模式(一)创建型 .NET平台上的Model-View-Presenter模式实践 关于cmmi的一些理解及资料 iphone 开发学习 C语言指针总结 Android 开发网站,记录一下 使用 TRY/CATCH 语句解决 SQL Server 2005 死锁
信息发布系统 Jquery+MVC架构开发(4) Model 层 .
似水流年-johnhuo · 2011-07-24 · via 博客园 - 似水流年-johnhuo

下面开始在我们的解决方案里面增加实体.

这一层我个人感觉是跟数据库的映射层次,有了这一层,各层访问数据库会方便很多,不然的话得用DataSet或DataReader的直接访问了。理解为持久化对象就ok了。

在这里我们开始使用动软.Net代码生成器,这个网上很多,想使用的下载就可以了,更好的是CodeSmith 只不过这个工具我们需要自定义模板。用代码生成器是为了我们自己一手写重复的代码,仅此而已。

安装好动软.Net代码生成器后,进入下面的界面:

首先在左边的树菜单新增服务器,如下:

 

选择下一步:

输入相对应的服务器,用户/密码,数据库,选择确定即可。然后在左侧新建好的服务器选择连接:

选择其中的info表:

选择单表代码生成器:

选择model,点击生成代码:

 

然后把生成的代码放到我们的解决方案里面即可,其他的表也是类似的操作。

注意由于很多项目中命名规则的问题,我们可能需要自定义模板,动软的代码生成器现在增加了模板,大伙可以研究下:

选择右边的模板管理下的代码模板(选择一个双击):

改动模扳生成的代码如下:

说到这里就得介绍下大名鼎鼎的CodeSmith 了,这框代码生成工具需要我们自己编写模板,然后根据我们自己的模板生成自己需要的代码:

这样的话灵活性很高,问题是我们需要学习下模板的编写,呵呵,好消息是模板同样是c#语言编写。

基本的实体类定义好以后,我们为了结果类,如下:

  public class InfoResult

    {

        public int Code = 0;

        public string Message = string.Empty;

}

这样我们就可以把自己定义好的业务操作信息和异常信息放到这个类中了,正常情况下,我们可以定义code=0 ,如果出现异常,我们可以把code定义为100,Message为:

InfoResult  result=new InfoResult  ()

result.Message = ex.Message + ex.StackTrace + ex.InnerException;

同时为了支持分页我们需要自己定义一个分页类:

    public class PageInfo

    {

        public int startNum { get; set; }

        public int endNum { get; set; }

        public int Max { get; set; }

        public int pageSize { get; set; }

        public int pageIndex { get; set; }

    }

为了得到查询列表我们需要类的组合:

比如:
using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace InfoPub.Modal

{

    public class SearchInfo

    {

        /// <summary>

        /// infoname

        /// </summary>           

        public string Infoname

        {

            get;

            set;

        }

        /// <summary>

        /// TypeId

        /// </summary>           

        public int TypeId

        {

            get;

            set;

        }

        /// <summary>

        /// CreateId

        /// </summary>           

        public int CreateId

        {

            get;

            set;

        }

        /// <summary>

        /// BeginDate

        /// </summary>           

        public DateTime BeginDate

        {

            get;

            set;

        }

        /// <summary>

        /// EndDate

        /// </summary>           

        public DateTime EndDate

        {

            get;

            set;

        }

        public PageInfo pageInfo = new PageInfo();

    }

    public class InfoList

    {

        public PageInfo pageInfo = new PageInfo();

        public InfoResult infoResult = new InfoResult();

        public List<Info> infoList = new List<Info>();

    }

}