在很多的ORM中对存储过程操作都是一个棘手的地方,因为存储过程是一段预编译的代码,其中可以包含很多处理过程。在Git.Framework中也同样存在这样的问题,目前没有能力解决这个问题。但是对于存储过程的一些外围操作目前还是可以支持的。
上一篇文章简单回顾地址,可能对了解本文有益: Git.Framework 框架随手记--SQL配置文件的使用
一. 结构简单说明
在前面操作基本SQL的时候我们已经知道使用对象模型映射其相关的表,一些基本的操作我们都能够实现完成。在很大的程度上完成了抽象工作,在实现存储过程的时候我们同意遵循抽象的原则。每一个存储过程我们都映射成为一个实体类,而这个存储过程的实体类也必须继承自BaseEntity。先简单看看如下一个存储过程的映射类。
/******************************************************************************* * Copyright (C) Git Corporation. All rights reserved. * * Author: 代码工具自动生成 * Create Date: 2014/03/02 09:57:38 * Blog: http://www.cnblogs.com/qingyuan/ * Description: Git.Framework * * Revision History: * Date Author Description * 2014/03/02 09:57:38 *********************************************************************************/ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using Git.Framework.ORM; namespace Git.Storage.Entity.InStorage { [TableAttribute(DbName = "JooShowGit", Name = "Proc_AuditeInStorage", IsInternal = false,MapType=MapType.Proc)] public partial class Proc_AuditeInStorageEntity:BaseEntity { public Proc_AuditeInStorageEntity() { } [DataMapping(ColumnName = "OrderNum", DbType = DbType.String, Length = 20,ColumnType=ColumnType.InPut)] public string OrderNum { get; set; } [DataMapping(ColumnName = "Status", DbType = DbType.Int32, Length = 4000,ColumnType=ColumnType.InPut)] public Int32 Status { get; set; } [DataMapping(ColumnName = "AuditUser", DbType = DbType.String, Length = 20,ColumnType=ColumnType.InPut)] public string AuditUser { get; set; } [DataMapping(ColumnName = "Reason", DbType = DbType.String, Length = 400,ColumnType=ColumnType.InPut)] public string Reason { get; set; } [DataMapping(ColumnName = "OperateType", DbType = DbType.Int32, Length = 4000,ColumnType=ColumnType.InPut)] public Int32 OperateType { get; set; } [DataMapping(ColumnName = "EquipmentNum", DbType = DbType.String, Length = 20,ColumnType=ColumnType.InPut)] public string EquipmentNum { get; set; } [DataMapping(ColumnName = "EquipmentCode", DbType = DbType.String, Length = 20,ColumnType=ColumnType.InPut)] public string EquipmentCode { get; set; } [DataMapping(ColumnName = "Remark", DbType = DbType.String, Length = 400,ColumnType=ColumnType.InPut)] public string Remark { get; set; } [DataMapping(ColumnName = "ReturnValue", DbType = DbType.String, Length = 50,ColumnType=ColumnType.InOutPut)] public string ReturnValue { get; set; } } }