C/S框架后台数据更新模型之ORM自动生成SQL基本原理

  C/S框架后台数据更新模型之ORM自动生成SQL基本原理

基于ADO.NET提交数据需要程序员写代码,使用DataAdapter.Update()方法提交数据前要实现3个DbCommand,分别是InsertCommand、UpdateCommand、DeleteCommand。作者有5年Delphi开发经验,Delphi只需调用ADOQuery.Update()就行了,不需要写3个DbCommand以及任何SQL脚本(特殊处理除外)。


C/S开发框架


说说CSFramework.COM后台数据更新模型


作者开发过多套基于数据管理应用系统,最原始的提交数据常用方法是使用Update,Insert,Delete三种SQL语句,数据表越多写的SQL越多,效率很低,开发周期变长。后来接触NHibernate组件,在我们的一个系统中成功应用了,接触新技术总是兴奋的,快速进入状态。在项目中期阶段,发现配置NHibernate所需的XML文件实在太多,维护带来的工作量也特别大,随着系统迭代升级,变的也越来越复杂。


NHibernate配置的XML文件对我有所启发,为什么要使用XML? 


若把XML改装为C#的静态类或实体类是否更有效?


》》》 请看下面代码:



public
class TProduct

    {

        [TableAttribute (true, false, true)]

        public static string TableName = "tb_MyProduct";

 

        [TableAttribute (false, true, false)]

        public static string KeyName = "ProductCode";

 

        [FieldAttribute (SqlDbType.Int, 4, false, false, false, false, false)]

        public static string isid = "isid";

 

        [FieldAttribute (SqlDbType.NVarChar, 20, false, true, false, false, false)]

        public static string ProductCode = "ProductCode";

 

        [FieldAttribute (SqlDbType.NVarChar, 50, false, true, false, false, false)]

        public static string ProductName = "ProductName";

 

        [FieldAttribute (SqlDbType.Decimal, 18, false, true, false, false, false)]

        public static string SellPrice = "SellPrice";

 

        [FieldAttribute (SqlDbType.NVarChar, 50, false, true, false, false, false)]

        public static string Supplier = "Supplier";

 

        [FieldAttribute (SqlDbType.NVarChar, 100, false, true, false, false, false)]

        public static string Remark = "Remark";

    }




这个类有两个功能:


1.用于自动生成SQL语句  

2.定义了 表结构字段名,在其它类引用字段名时可使用:


//字段名

TProduct.ProductCode


//
获取主表关键字

string key = data.Tables[TProductTake.TableName].Rows[0][TProductTake.TakeNo].ToString ();



使用方法


假设我们定义了更新【盘点数据】的类,只需要实现GetTypeByTableName及Update方法



    /// <summary>

    /// 业务逻辑管理主类. www.csframework.com 版权所有

    /// </summary>

    public class DataManager : DataUpdate

    {

 

        public DataManager(OleDbConnection conn)

            : base(conn)

        {

            //

        }

 

        protected override Type GetTypeByTableName(string tableName)

        {

            if (tableName == TProductTake.TableName)

            & nbsp;   return typeof (TProductTake);

            if (tableName == TProductTakeDetail.TableName)

            & nbsp;   return typeof (TProductTakeDetail);

            throw new Exception("没绑定数据表结构 定义!");

        }

        public bool Update(System.Data.DataSet currentBusiness, UpdateType updateType)

        {

            return base.Update (currentBusiness);

        }
    } 
 
     



在界面层调用 :


        private void TestSave()

        {

            //初始化业务逻辑

            DataManager dataManager = new DataManager(DataProvider.Instance.CreateConnection());

            DataSet data = null;//你要保存的数据

            dataManager.Update(data);

        }





数据更新流程




C/S框架后台数据更新模型之ORM自动生成SQL基本原理





C/S框架网|原创精神.创造价值.打造精品

扫一扫加微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务


Source code for VIP:

版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
发表评论

评论内容
昵称:
关联文章

C/S框架后台数据更新模型ORM自动生成SQL基本原理
C/S系统快速开发平台SQL命令生成器(数据自动更新模型)
C#开发框架 ORM后台数据更新程序关键组成部分
C/S开发框架标准版-后台数据更新dalBase类(UML图及方法介绍)
ORM模型ORM Model)
2.6生成ORM
Winform快速开发框架权限系统设计(3) - 功能按钮权限控制基本原理
C/S开发框架标准版-后台数据更新流程图(例子)
ORM_FieldAttribute类详解:字段特性定义,框架内核根据此特性自动生成SQL脚本
【原创】WebApi开发框架:Token生成、Token缓存原理、Token验证、令牌机制与原理
使用[后台数据更新模型]保存主从表数据(C#源码)
CSFramework代码生成器生成三种ORM模型类(静态类ORM,实体类ORM,标准对象)
Winform界面权限控制原理|C/S框架
Winform快速开发框架权限系统设计(1) - 基本概述
基于Winform三层架构+WCF+ORM模型的快速开发框架
CSFramework代码生成器自动生成主从表界面-C/S框架
SQL Server连接池基本原理
C/S开发框架教程:使用基础资料(数据字典)的DAL层更新主从表(或多表)数据
Winform+DevExpress框架独立图片存储解决方案|C/S框架
开发应用-观察者模式C#实现缓存数据更新