【文件属性】:
文件名称:多功能.NET代码自动生成器(含存储过程)
文件大小:337KB
文件格式:RAR
更新时间:2012-03-31 14:39:58
.NET 代码生成器 分层 反射
概况:
1、 适用于.net项目,基于MVC架构模式
2、 按照数据库结构生成基础开发类库
3、 数据库支持SQL2000和SQL2005两个版本
4、 类库为分层框架工厂模式,依次分为:数据库交互层(SqlHelper)、业务实体层(Model)、数据处理层(DAL)、数据接口层(IDAL)、数据工厂层(DALFactory)、业务层(BLL)6层
5、 业务实体层与业务层直接与UI交互
6、 生成类库的同时系统自动生成相应的存储过程脚本(Proc文件夹)。
一、配置
打开SQLHelper.cs文件,将相应的数据库连接配置信息添加到配置文件中即可。
二、存储过程
打开Proc文件夹,将Proc.sql在相应SQL命令执行窗口中打开,然后执行即可。
二、业务实体层
实体类名为数据表名称(首字母大写)加上Model后缀组成,类属性为相应字段名称(首字母大写),包含相应构造函数。
三、业务层
以下介绍以CalendarNotes表为例,主键字段为id。
1、插入数据
public string Insert(CalendarNotesModel model)
插入单条数据,即业务实体对象
public string Insert(List list)
插入多条数据,即泛型集合(集合元素为业务实体对象)
public string Insert(CalendarNotesModel model, object objTrans)
在指定事务控制中插入单条数据
public string Insert(List list, object objTrans)
在指定事务控制中插入多条数据
2、插入并返回所插入的记录的自增ID
适用范围为相应数据表中存在标识字段,可同步获取到新插入数据的标识字段值。
public string Insert_Identity(CalendarNotesModel model)
插入单条数据
public string Insert_Identity(CalendarNotesModel model, object objTrans)
在指定事务控制中插入单条数据
3、更新数据
public string Update(CalendarNotesModel model)
更新单条数据,使用过程是:先取出相应业务实体,然后修改字段值(非主键字段),然后调用此方法更新数据库。
public string Update(CalendarNotesModel model, object objTrans)
在指定事务控制中更新单条数据,调用过程同上。
4、删除数据
public string Delete(string id)
根据主键删除单条数据。
public string Delete(CalendarNotesModel model)
根据指定条件批量删除数据,调用过程:先实例化一个CalendarNotesModel对象,然后设置删除条件(即给相应属性字段赋值),然后调用此方法。
public string Delete(string id, object objTrans)
在指定事务中删除单条数据。
public string Delete(CalendarNotesModel model, object objTrans)
在指定事务中批量删除数据。
5、查询数据
public List SelectAll()
查询出当前数据表所有数据。
public CalendarNotesModel Select(string id)
根据主键查询单条数据。
public List Select(CalendarNotesModel model, string querytype)
根据指定条件查询数据集合,调用过程:先实例化一个CalendarNotesModel对象,然后设置筛选条件(即给相应属性字段赋值),然后调用此方法,可通过querytype参数设置筛选出的数据集的排序,如” UpdateTime DESC”,默认可为空(””)。
public CalendarNotesModel Select(string id, object objTrans)
在指定事务控制中根据主键查询单条数据。
public List Select(CalendarNotesModel model, string querytype, object objTrans)
在指定事务控制中根据指定条件查询数据集合。
6、分页查询
///
/// 分页查询,返回List数据集合
///
/// /// 查询条件
/// /// 排序条件
/// /// 查询页码
/// /// 每页记录条数
/// /// 输出参数:总记录数
/// 当前页数据集合
public List Select_Page(CalendarNotesModel model, string querytype, int PageIndex, int PageSize, out int TotalNumber)
按照指定条件分页查询数据集合,返回List集合,查询指定页。具体参数参照BLL层注释。
///
/// 分页查询,返回Json数据源
///
/// /// 查询条件
/// /// 排序条件
/// /// 查询页码
/// /// 每页记录条数
/// 当前页数据的JSON数据源(JSON格式参考Json转换方法)
public string Select_Page(CalendarNotesModel model, string querytype, int PageIndex, int PageSize)
按照指定条件分页查询数据集合,返回JSON数据源,查询指定页。具体参数参照BLL层注释。
7、范围分页查询
///
/// 范围分页查询,查询介于model_min与model_max之间的实体集合,两个model中都有值的属性为范围筛选,仅model_min中有值的属性为等于筛选
///
/// /// 起始model
/// /// 结束model
/// /// 比较标识:1为小于等于;默认为小于
/// /// 排序条件,如:field1 desc
/// 符合条件的实体集合
public List Select_Range_Page(CalendarNotesModel model_min, CalendarNotesModel model_max, string queryflag, string querytype, int PageIndex, int PageSize, out int TotalNumber)
按指定范围条件查询符合条件的数据集合,返回指定页的数据集合。
8、范围查询
///
/// 范围查询,查询介于model_min与model_max之间的实体集合,两个model中都有值的属性为范围筛选,仅model_min中有值的属性为等于筛选
///
/// /// 起始model
/// /// 结束model
/// /// 比较标识:1为小于等于;默认为小于
/// /// 排序条件,如:field1 desc
/// 符合条件的实体集合
public List Select_Range(CalendarNotesModel model_min, CalendarNotesModel model_max, string queryflag, string querytype)
9、获取记录数
public int GetRowCount(CalendarNotesModel model)
获取符合条件的记录条数,没有符合条件的返回0。
10、判断是否存在符合条件的记录
public bool IsExists(string id)
根据主键判断是否存在符合条件的记录。
public bool IsExists(CalendarNotesModel model)
根据指定条件判断是否存在符合条件的记录。
11、格式化model对象(私有方法,不对外调用)
private CalendarNotesModel InitModel_DefaultValue(CalendarNotesModel model)
按照数据库中数据表字段的默认值设置初始化业务实体。
private CalendarNotesModel InitModel_NullValue(CalendarNotesModel model)
按照空值字符串(生成代码时指定,默认为-1)初始化业务实体。
12、XML数据源相关
注:XML数据源中元素标签为小写数据表名称,各属性key为相应小写字段名称。
public CalendarNotesModel GetModelByXML(string xml)
解析xml数据源为业务实体对象。
public string GetXMLByModel(CalendarNotesModel model)
解析业务实体对象为xml数据源。
public List GetListByXML(string xml)
解析xml数据源为List数据集合。
public string GetXMLByList(List list)
解析List数据集合为xml数据源。
public string Insert(string xml)
将单条记录xml数据插入数据库
public string Update(string xml)
将单条记录xml数据更新到数据库
13、JSON数据源相关
注:json数据源中totalProperty属性为数据源总记录条数,root属性下是具体数据表记录信息,数据表记录信息中各key为小写字段名称,值均为字符串类型。
示例:
{
'totalProperty':10,
'root':[
{'id':'001','name':'user1'},
{'id':'002','name':'user2'}
]
}
json字符串传至客户端后在javascript脚本下需将字符串转换为json数据对象,示例如下:
var objJson = eval('('+strJson+')');
public string GetJsonByModel(CalendarNotesModel model)
解析业务实体对象为json数据源。
public string GetJsonByList(List list)
解析List数据集合为json数据源,json数据源记录总条数即为List集合的元素个数。
public string GetJsonByList(List list, int count)
解析List数据集合为json数据源,json数据源记录总条数为传入count参数值,用于取分页数据。
四、事务控制
事务控制调用示例:
CauCWareLibrary.BLL.BLLCalendarNotes objBLL = new CauCWareLibrary.BLL.BLLCalendarNotes();
try
{
//发起事务
object trans1 = CauCWareLibrary.SqlHelper.SQLHelper.StartTransaction("trans1");
//业务操作
CalendarNotesModel model1 = CauCWareLibrary.BLL.BLLCalendarNotes.Select("184", trans1);
//提交事务
CauCWareLibrary.SqlHelper.SQLHelper.CommitTrancaction(trans1);
}
catch
{
//回滚事务
CauCWareLibrary.SqlHelper.SQLHelper.RollbackTrancaction(trans1);
}
五、其他说明
1、各类文件均为分布类
易于扩展,避免项目开发过程中数据库结构调整所引起大量的基础类库代码维护工作,避免多个人维护同一个类时引起代码紊乱。
2、扩展存储过程说明
步骤如下:
1) 在数据库中新建存储过程;
2) 在DAL文件夹下新建分布类文件,添加相应using信息,类声明如下:
public partial class DALCalendarNotes : IDALCalendarNotes
3) 添加public方法,调用存储过程,具体参考其他自动生成的代码;
4) 在IDAL文件夹下新建分布类文件,添加相应using信息,接口声明如下:
public partial interface IDALCalendarNotes
5) 添加新增方法的接口声明;
6) 在BLL文件夹下新建分布类文件,添加相应using信息,类声明如下:
public partial class BLLCalendarNotes
7) 添加新增业务方法即可。
【文件预览】:
CBuilder
----CBuilder2005.suo(29KB)
----CBuilder()
--------CBuilder2005.suo(3KB)
--------Program.cs(597B)
--------BaseClass.cs(26KB)
--------CBuilder.csproj(5KB)
--------SQLHelper()
--------CBuilder2005.csproj.user(168B)
--------frmProcSet.resx(6KB)
--------DataConn.cs(6KB)
--------CommonClass.cs(12KB)
--------Column.cs(5KB)
--------frmMain.Designer.cs(19KB)
--------obj()
--------bin()
--------BLLFactory()
--------Proc()
--------CBuilder.csproj.user(168B)
--------frmXMLTest.cs(2KB)
--------frmXMLTest.resx(6KB)
--------frmXMLTest.Designer.cs(3KB)
--------Model()
--------DALFactory()
--------CBuilder2005.csproj(5KB)
--------frmMain.cs(16KB)
--------App.config(507B)
--------DAL()
--------frmMain.resx(6KB)
--------IBLL()
--------Properties()
--------IDAL()
--------frmProcSet.Designer.cs(5KB)
--------BLL()
--------frmProcSet.cs(2KB)
----CBuilder.sln(914B)
----CBuilder.suo(34KB)
----CBuilder2005.sln(921B)