⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ormwriter.cs

📁 一个小型的ORM框架,写得不好请多多指教
💻 CS
📖 第 1 页 / 共 2 页
字号:
//using System;
//using System.Collections;
//using System.Collections.Generic;
//using System.Text;
//using System.Data;
//using System.Data.SqlClient;
//using System.Reflection;
//using System.Transactions;

//namespace MiniORM.BAK
//{
//    /// <summary>
//    /// ORM写入器,向数据库中写入记录
//    /// </summary>
//    public class OrmWriter
//    {
//        /// <summary>
//        /// 向数据库中插入INS.Model中的对象
//        /// </summary>
//        /// <param name="ModelObject">记录Model</param>
//        /// <returns>记录Model</returns>
//        public object Write(object ModelObject)
//        {
//            Log("开始进入Write()函数");
//            //新记录ID
//            int iNewID = 0;
//            List<SqlParameter> Params = new List<SqlParameter>();
//            //插入SQL,并且把SqlParameters的初始化也放在里面,避免两次进行ModelObject的反射操作
//            string strSQL = PubFuncs.GetInsertSQL(ModelObject, ref Params);
//            Log("GetInsertSQL:" + strSQL);
//            //// 构造Params数组
//            //SqlParameter[] Params = GetParamsWithValue(ModelObject);

//            SqlCommand cmd = new SqlCommand();
//            foreach (SqlParameter Param in Params)
//            {
//                cmd.Parameters.Add(Param);
//            }

//            Log("TransactionScope:Begin");
//            using (TransactionScope scope = new TransactionScope())
//            {
//                Log("using (TransactionScope scope = new TransactionScope())");
//                // 建立数据库连接
//                //using (SqlConnection conn = new SqlConnection("server=(local);user id=sa;password=;database=INSClient;min pool size=4;max pool size=16;packet size=10240"))
//                using (SqlConnection conn = new SqlConnection(INS.DBUtility.SqlHelper.INSClient_Trade_ConnectionString))
//                {
//                    Log("conn.Open()前");
//                    conn.Open();
//                    Log("conn.Open()后");
//                    cmd.Connection = conn;
//                    cmd.CommandType = CommandType.Text;
//                    cmd.CommandText = strSQL;

//                    using (SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
//                    {
//                        Log("rdr.Read()前");
//                        rdr.Read();
//                        Log("rdr.Read()后");
//                        if (rdr.GetInt32(1) != 0)
//                            throw new ApplicationException("插入新记录" + ModelObject.ToString() + "出错,SQL错误号:" + rdr.GetInt32(1)); ;

//                        cmd.Parameters.Clear();
//                        iNewID = rdr.GetInt32(0);  //返回ID

//                        //设置对象的Key值
//                        PubFuncs.SetKeyValue(ModelObject, iNewID);
//                    }
//                }

//                Log("保存子对象前");
//                #region 保存子对象
//                PropertyInfo[] props = ModelObject.GetType().GetProperties();
//                MiniORMAttribute.SubDataObjectAttribute SubDataAttr = null;
//                object[] CustomAttributes;

//                foreach (PropertyInfo prop in props)
//                {
//                    CustomAttributes = prop.GetCustomAttributes(typeof(MiniORMAttribute.SubDataObjectAttribute), false);
//                    if (CustomAttributes.Length > 0)
//                    {
//                        SubDataAttr = CustomAttributes[0] as MiniORMAttribute.SubDataObjectAttribute;
//                        if (SubDataAttr != null)
//                        {
//                            switch (SubDataAttr.FieldType)
//                            {
//                                case MiniORMAttribute.SubDataObjectFieldType.Object:
//                                    {
//                                        object objModel = prop.GetValue(ModelObject, null);
//                                        //设置objModel的Foreignkey为当前新记录的ID
//                                        PubFuncs.SetForeignkeyValue(objModel, iNewID);
//                                        //插入对象
//                                        Write(objModel);
//                                    }
//                                    break;
//                                //case MiniORMAttribute.SubDataObjectFieldType.MyHashTable:
//                                //    {
//                                //        System.Collections.ICollection colValues = ((INS.Model.MyHashTable)prop.GetValue(ModelObject, null)).Values;
//                                //        foreach (object obj in colValues)
//                                //        {
//                                //            //设置objModel的Foreignkey为当前新记录的ID
//                                //            PubFuncs.SetForeignkeyValue(obj, iNewID);
//                                //            //插入对象
//                                //            Write(obj);
//                                //        }
//                                //    }
//                                //    break;
//                                case MiniORMAttribute.SubDataObjectFieldType.HashTable:
//                                    {
//                                        System.Collections.ICollection colValues = ((System.Collections.Hashtable)prop.GetValue(ModelObject, null)).Values;
//                                        foreach (object obj in colValues)
//                                        {
//                                            //设置objModel的Foreignkey为当前新记录的ID
//                                            PubFuncs.SetForeignkeyValue(obj, iNewID);
//                                            //插入对象
//                                            Write(obj);
//                                        }
//                                    }
//                                    break;
//                                case MiniORMAttribute.SubDataObjectFieldType.List:
//                                    {
//                                        System.Collections.IList list = (System.Collections.IList)prop.GetValue(ModelObject, null);
//                                        foreach (object obj in list)
//                                        {
//                                            //设置objModel的Foreignkey为当前新记录的ID
//                                            PubFuncs.SetForeignkeyValue(obj, iNewID);
//                                            //插入对象
//                                            Write(obj);
//                                        }
//                                    }
//                                    break;
//                                case MiniORMAttribute.SubDataObjectFieldType.ArrayList:
//                                    {
//                                        System.Collections.ArrayList list = (System.Collections.ArrayList)prop.GetValue(ModelObject, null);
//                                        foreach (object obj in list)
//                                        {
//                                            //设置objModel的Foreignkey为当前新记录的ID
//                                            PubFuncs.SetForeignkeyValue(obj, iNewID);
//                                            //插入对象
//                                            Write(obj);
//                                        }
//                                    }
//                                    break;
//                            }
//                        }
//                    }
//                }
//                #endregion
//                Log("scope.Complete()前");
//                scope.Complete();
//                Log("scope.Complete()后");
//            }

//            return ModelObject;
//        }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -