using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections;
using AIMSModel;
using AIMSObjectQuery;
using System.Collections.Generic;
using DrawGraph;
namespace AIMSDAL
{
    internal partial class DOperationRecordInfo
    {
        #region 插入实体操作部份
        /// 
        /// 插入
        /// 
        /// Command对象
        /// 实体类对象
        /// 标识列值或影响的记录行数
        internal static int Insert(SqlCommand cmd, OperationRecordInfo operationRecordInfo)
        {
            cmd.Parameters.Clear();
            cmd.CommandText = "insert into OperationRecordInfo (PatientId,ApplyId,OperationRecordId,OperationCutId,OperationCut,OperationLevelId,OperationLevel,OperationSiteId,OperationSite,PuncturePosition,PunctureSite,ConduitDepth,NeedleNumber,NeedleDirection,PunctureRemark,PuncturePosition2,PunctureSite2,ConduitDepth2,NeedleNumber2,NeedleDirection2,PunctureRemark2,IntubateMode,IntubateType,IntubateNumber,IntubateDepth,IntubatePosition,AnaesthesiaMode,IntubatePath,IntubateOther,NeuroPlexusShallow,NeuroPlexusAround,BrachialPlexus,VenipunctureType,VenipunctureDeep,VenipunctureCenter,Experts,RuleAnesthesiaDoctor,RuleNurse,AnesthesiaPlane,SpecialSituation,AnesthesiaEffect,OperationAnalgesiaMode,Whereabouts,AnesthesiaMethodFirstName,AnesthesiaMethodLastName,AnesthesiaMethodChangeReason,AnesthesiaMethodChangeTime,AnesthesiaSucceed,AnesthesiaSucceedTime,TourNurseSucceed,TourNurseSucceedTime,InstrumentNurseSucceed,InstrumentNurseSucceedTime,InfoRemark,OperatorId,OperatorTime,StewardSober,StewardBreathing,StewardLimbActivity,StewardNumber,Extend1,Extend2,Extend3,Extend4,Extend5) values (@PatientId,@ApplyId,@OperationRecordId,@OperationCutId,@OperationCut,@OperationLevelId,@OperationLevel,@OperationSiteId,@OperationSite,@PuncturePosition,@PunctureSite,@ConduitDepth,@NeedleNumber,@NeedleDirection,@PunctureRemark,@PuncturePosition2,@PunctureSite2,@ConduitDepth2,@NeedleNumber2,@NeedleDirection2,@PunctureRemark2,@IntubateMode,@IntubateType,@IntubateNumber,@IntubateDepth,@IntubatePosition,@AnaesthesiaMode,@IntubatePath,@IntubateOther,@NeuroPlexusShallow,@NeuroPlexusAround,@BrachialPlexus,@VenipunctureType,@VenipunctureDeep,@VenipunctureCenter,@Experts,@RuleAnesthesiaDoctor,@RuleNurse,@AnesthesiaPlane,@SpecialSituation,@AnesthesiaEffect,@OperationAnalgesiaMode,@Whereabouts,@AnesthesiaMethodFirstName,@AnesthesiaMethodLastName,@AnesthesiaMethodChangeReason,@AnesthesiaMethodChangeTime,@AnesthesiaSucceed,@AnesthesiaSucceedTime,@TourNurseSucceed,@TourNurseSucceedTime,@InstrumentNurseSucceed,@InstrumentNurseSucceedTime,@InfoRemark,@OperatorId,@OperatorTime,@StewardSober,@StewardBreathing,@StewardLimbActivity,@StewardNumber,@Extend1,@Extend2,@Extend3,@Extend4,@Extend5);select @@identity";
            //从实体中取出值放入Command的参数列表
            cmd.Parameters.Add(new SqlParameter("@PatientId", operationRecordInfo.PatientId.HasValue ? (object)operationRecordInfo.PatientId.Value : (object)DBNull.Value));
            cmd.Parameters.Add(new SqlParameter("@ApplyId", operationRecordInfo.ApplyId.HasValue ? (object)operationRecordInfo.ApplyId.Value : (object)DBNull.Value));
            cmd.Parameters.Add(new SqlParameter("@OperationRecordId", operationRecordInfo.OperationRecordId.HasValue ? (object)operationRecordInfo.OperationRecordId.Value : (object)DBNull.Value));
            cmd.Parameters.Add(new SqlParameter("@OperationCutId", operationRecordInfo.OperationCutId == null ? (object)DBNull.Value : (object)operationRecordInfo.OperationCutId));
            cmd.Parameters.Add(new SqlParameter("@OperationCut", operationRecordInfo.OperationCut == null ? (object)DBNull.Value : (object)operationRecordInfo.OperationCut));
            cmd.Parameters.Add(new SqlParameter("@OperationLevelId", operationRecordInfo.OperationLevelId == null ? (object)DBNull.Value : (object)operationRecordInfo.OperationLevelId));
            cmd.Parameters.Add(new SqlParameter("@OperationLevel", operationRecordInfo.OperationLevel == null ? (object)DBNull.Value : (object)operationRecordInfo.OperationLevel));
            cmd.Parameters.Add(new SqlParameter("@OperationSiteId", operationRecordInfo.OperationSiteId == null ? (object)DBNull.Value : (object)operationRecordInfo.OperationSiteId));
            cmd.Parameters.Add(new SqlParameter("@OperationSite", operationRecordInfo.OperationSite == null ? (object)DBNull.Value : (object)operationRecordInfo.OperationSite));
            cmd.Parameters.Add(new SqlParameter("@PuncturePosition", operationRecordInfo.PuncturePosition == null ? (object)DBNull.Value : (object)operationRecordInfo.PuncturePosition));
            cmd.Parameters.Add(new SqlParameter("@PunctureSite", operationRecordInfo.PunctureSite == null ? (object)DBNull.Value : (object)operationRecordInfo.PunctureSite));
            cmd.Parameters.Add(new SqlParameter("@ConduitDepth", operationRecordInfo.ConduitDepth == null ? (object)DBNull.Value : (object)operationRecordInfo.ConduitDepth));
            cmd.Parameters.Add(new SqlParameter("@NeedleNumber", operationRecordInfo.NeedleNumber == null ? (object)DBNull.Value : (object)operationRecordInfo.NeedleNumber));
            cmd.Parameters.Add(new SqlParameter("@NeedleDirection", operationRecordInfo.NeedleDirection == null ? (object)DBNull.Value : (object)operationRecordInfo.NeedleDirection));
            cmd.Parameters.Add(new SqlParameter("@PunctureRemark", operationRecordInfo.PunctureRemark == null ? (object)DBNull.Value : (object)operationRecordInfo.PunctureRemark));
            cmd.Parameters.Add(new SqlParameter("@PuncturePosition2", operationRecordInfo.PuncturePosition2 == null ? (object)DBNull.Value : (object)operationRecordInfo.PuncturePosition2));
            cmd.Parameters.Add(new SqlParameter("@PunctureSite2", operationRecordInfo.PunctureSite2 == null ? (object)DBNull.Value : (object)operationRecordInfo.PunctureSite2));
            cmd.Parameters.Add(new SqlParameter("@ConduitDepth2", operationRecordInfo.ConduitDepth2 == null ? (object)DBNull.Value : (object)operationRecordInfo.ConduitDepth2));
            cmd.Parameters.Add(new SqlParameter("@NeedleNumber2", operationRecordInfo.NeedleNumber2 == null ? (object)DBNull.Value : (object)operationRecordInfo.NeedleNumber2));
            cmd.Parameters.Add(new SqlParameter("@NeedleDirection2", operationRecordInfo.NeedleDirection2 == null ? (object)DBNull.Value : (object)operationRecordInfo.NeedleDirection2));
            cmd.Parameters.Add(new SqlParameter("@PunctureRemark2", operationRecordInfo.PunctureRemark2 == null ? (object)DBNull.Value : (object)operationRecordInfo.PunctureRemark2));
            cmd.Parameters.Add(new SqlParameter("@IntubateMode", operationRecordInfo.IntubateMode == null ? (object)DBNull.Value : (object)operationRecordInfo.IntubateMode));
            cmd.Parameters.Add(new SqlParameter("@IntubateType", operationRecordInfo.IntubateType == null ? (object)DBNull.Value : (object)operationRecordInfo.IntubateType));
            cmd.Parameters.Add(new SqlParameter("@IntubateNumber", operationRecordInfo.IntubateNumber == null ? (object)DBNull.Value : (object)operationRecordInfo.IntubateNumber));
            cmd.Parameters.Add(new SqlParameter("@IntubateDepth", operationRecordInfo.IntubateDepth == null ? (object)DBNull.Value : (object)operationRecordInfo.IntubateDepth));
            cmd.Parameters.Add(new SqlParameter("@IntubatePosition", operationRecordInfo.IntubatePosition == null ? (object)DBNull.Value : (object)operationRecordInfo.IntubatePosition));
            cmd.Parameters.Add(new SqlParameter("@AnaesthesiaMode", operationRecordInfo.AnaesthesiaMode == null ? (object)DBNull.Value : (object)operationRecordInfo.AnaesthesiaMode));
            cmd.Parameters.Add(new SqlParameter("@IntubatePath", operationRecordInfo.IntubatePath == null ? (object)DBNull.Value : (object)operationRecordInfo.IntubatePath));
            cmd.Parameters.Add(new SqlParameter("@IntubateOther", operationRecordInfo.IntubateOther == null ? (object)DBNull.Value : (object)operationRecordInfo.IntubateOther));
            cmd.Parameters.Add(new SqlParameter("@NeuroPlexusShallow", operationRecordInfo.NeuroPlexusShallow == null ? (object)DBNull.Value : (object)operationRecordInfo.NeuroPlexusShallow));
            cmd.Parameters.Add(new SqlParameter("@NeuroPlexusAround", operationRecordInfo.NeuroPlexusAround == null ? (object)DBNull.Value : (object)operationRecordInfo.NeuroPlexusAround));
            cmd.Parameters.Add(new SqlParameter("@BrachialPlexus", operationRecordInfo.BrachialPlexus == null ? (object)DBNull.Value : (object)operationRecordInfo.BrachialPlexus));
            cmd.Parameters.Add(new SqlParameter("@VenipunctureType", operationRecordInfo.VenipunctureType == null ? (object)DBNull.Value : (object)operationRecordInfo.VenipunctureType));
            cmd.Parameters.Add(new SqlParameter("@VenipunctureDeep", operationRecordInfo.VenipunctureDeep == null ? (object)DBNull.Value : (object)operationRecordInfo.VenipunctureDeep));
            cmd.Parameters.Add(new SqlParameter("@VenipunctureCenter", operationRecordInfo.VenipunctureCenter == null ? (object)DBNull.Value : (object)operationRecordInfo.VenipunctureCenter));
            cmd.Parameters.Add(new SqlParameter("@Experts", operationRecordInfo.Experts == null ? (object)DBNull.Value : (object)operationRecordInfo.Experts));
            cmd.Parameters.Add(new SqlParameter("@RuleAnesthesiaDoctor", operationRecordInfo.RuleAnesthesiaDoctor == null ? (object)DBNull.Value : (object)operationRecordInfo.RuleAnesthesiaDoctor));
            cmd.Parameters.Add(new SqlParameter("@RuleNurse", operationRecordInfo.RuleNurse == null ? (object)DBNull.Value : (object)operationRecordInfo.RuleNurse));
            cmd.Parameters.Add(new SqlParameter("@AnesthesiaPlane", operationRecordInfo.AnesthesiaPlane == null ? (object)DBNull.Value : (object)operationRecordInfo.AnesthesiaPlane));
            cmd.Parameters.Add(new SqlParameter("@SpecialSituation", operationRecordInfo.SpecialSituation == null ? (object)DBNull.Value : (object)operationRecordInfo.SpecialSituation));
            cmd.Parameters.Add(new SqlParameter("@AnesthesiaEffect", operationRecordInfo.AnesthesiaEffect == null ? (object)DBNull.Value : (object)operationRecordInfo.AnesthesiaEffect));
            cmd.Parameters.Add(new SqlParameter("@OperationAnalgesiaMode", operationRecordInfo.OperationAnalgesiaMode == null ? (object)DBNull.Value : (object)operationRecordInfo.OperationAnalgesiaMode));
            cmd.Parameters.Add(new SqlParameter("@Whereabouts", operationRecordInfo.Whereabouts == null ? (object)DBNull.Value : (object)operationRecordInfo.Whereabouts));
            cmd.Parameters.Add(new SqlParameter("@AnesthesiaMethodFirstName", operationRecordInfo.AnesthesiaMethodFirstName == null ? (object)DBNull.Value : (object)operationRecordInfo.AnesthesiaMethodFirstName));
            cmd.Parameters.Add(new SqlParameter("@AnesthesiaMethodLastName", operationRecordInfo.AnesthesiaMethodLastName == null ? (object)DBNull.Value : (object)operationRecordInfo.AnesthesiaMethodLastName));
            cmd.Parameters.Add(new SqlParameter("@AnesthesiaMethodChangeReason", operationRecordInfo.AnesthesiaMethodChangeReason == null ? (object)DBNull.Value : (object)operationRecordInfo.AnesthesiaMethodChangeReason));
            cmd.Parameters.Add(new SqlParameter("@AnesthesiaMethodChangeTime", operationRecordInfo.AnesthesiaMethodChangeTime.HasValue ? (object)operationRecordInfo.AnesthesiaMethodChangeTime.Value : (object)DBNull.Value));
            cmd.Parameters.Add(new SqlParameter("@AnesthesiaSucceed", operationRecordInfo.AnesthesiaSucceed == null ? (object)DBNull.Value : (object)operationRecordInfo.AnesthesiaSucceed));
            cmd.Parameters.Add(new SqlParameter("@AnesthesiaSucceedTime", operationRecordInfo.AnesthesiaSucceedTime.HasValue ? (object)operationRecordInfo.AnesthesiaSucceedTime.Value : (object)DBNull.Value));
            cmd.Parameters.Add(new SqlParameter("@TourNurseSucceed", operationRecordInfo.TourNurseSucceed == null ? (object)DBNull.Value : (object)operationRecordInfo.TourNurseSucceed));
            cmd.Parameters.Add(new SqlParameter("@TourNurseSucceedTime", operationRecordInfo.TourNurseSucceedTime.HasValue ? (object)operationRecordInfo.TourNurseSucceedTime.Value : (object)DBNull.Value));
            cmd.Parameters.Add(new SqlParameter("@InstrumentNurseSucceed", operationRecordInfo.InstrumentNurseSucceed == null ? (object)DBNull.Value : (object)operationRecordInfo.InstrumentNurseSucceed));
            cmd.Parameters.Add(new SqlParameter("@InstrumentNurseSucceedTime", operationRecordInfo.InstrumentNurseSucceedTime.HasValue ? (object)operationRecordInfo.InstrumentNurseSucceedTime.Value : (object)DBNull.Value));
            cmd.Parameters.Add(new SqlParameter("@InfoRemark", operationRecordInfo.InfoRemark == null ? (object)DBNull.Value : (object)operationRecordInfo.InfoRemark));
            cmd.Parameters.Add(new SqlParameter("@OperatorId", operationRecordInfo.OperatorId == null ? (object)DBNull.Value : (object)operationRecordInfo.OperatorId));
            cmd.Parameters.Add(new SqlParameter("@OperatorTime", operationRecordInfo.OperatorTime.HasValue ? (object)operationRecordInfo.OperatorTime.Value : (object)DBNull.Value));
            cmd.Parameters.Add(new SqlParameter("@StewardSober", operationRecordInfo.StewardSober == null ? (object)DBNull.Value : (object)operationRecordInfo.StewardSober));
            cmd.Parameters.Add(new SqlParameter("@StewardBreathing", operationRecordInfo.StewardBreathing == null ? (object)DBNull.Value : (object)operationRecordInfo.StewardBreathing));
            cmd.Parameters.Add(new SqlParameter("@StewardLimbActivity", operationRecordInfo.StewardLimbActivity == null ? (object)DBNull.Value : (object)operationRecordInfo.StewardLimbActivity));
            cmd.Parameters.Add(new SqlParameter("@StewardNumber", operationRecordInfo.StewardNumber == null ? (object)DBNull.Value : (object)operationRecordInfo.StewardNumber));
            cmd.Parameters.Add(new SqlParameter("@Extend1", operationRecordInfo.Extend1 == null ? (object)DBNull.Value : (object)operationRecordInfo.Extend1));
            cmd.Parameters.Add(new SqlParameter("@Extend2", operationRecordInfo.Extend2 == null ? (object)DBNull.Value : (object)operationRecordInfo.Extend2));
            cmd.Parameters.Add(new SqlParameter("@Extend3", operationRecordInfo.Extend3 == null ? (object)DBNull.Value : (object)operationRecordInfo.Extend3));
            cmd.Parameters.Add(new SqlParameter("@Extend4", operationRecordInfo.Extend4 == null ? (object)DBNull.Value : (object)operationRecordInfo.Extend4));
            cmd.Parameters.Add(new SqlParameter("@Extend5", operationRecordInfo.Extend5 == null ? (object)DBNull.Value : (object)operationRecordInfo.Extend5));
            return Convert.ToInt32(cmd.ExecuteScalar());
        }
        /// 
        /// 不使用事务的插入方法
        /// 
        /// 实体类对象
        /// 标识列值或影响的记录行数
        internal static int Insert(OperationRecordInfo operationRecordInfo)
        {
            using (SqlConnection conn = new SqlConnection(Connection.ConnectionString))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    return Insert(cmd, operationRecordInfo);
                }
            }
        }
        /// 
        /// 使用事务的插入方法
        /// 
        /// 实现共享Connection的对象
        /// 实体类对象
        /// 标识列值或影响的记录行数
        internal static int Insert(Connection connection, OperationRecordInfo operationRecordInfo)
        {
            return Insert(connection.Command, operationRecordInfo);
        }
        #endregion
        #region 删除实体操作
        /// 
        /// 删除
        /// 
        /// Command对象
        /// 实体类对象
        /// 影响的记录行数
        internal static int ExcuteDeleteCommand(SqlCommand cmd, OperationRecordInfo operationRecordInfo)
        {
            cmd.Parameters.Clear();
            cmd.CommandText = "delete from OperationRecordInfo where Id=@Id";
            //从实体中取出值放入Command的参数列表
            cmd.Parameters.Add(new SqlParameter("@Id", operationRecordInfo.Id));
            return cmd.ExecuteNonQuery();
        }
        /// 
        /// 不使用事务的删除方法
        /// 
        /// 实体类对象
        /// 影响的记录行数
        internal static int Delete(OperationRecordInfo operationRecordInfo)
        {
            using (SqlConnection conn = new SqlConnection(Connection.ConnectionString))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    return ExcuteDeleteCommand(cmd, operationRecordInfo);
                }
            }
        }
        /// 
        /// 使用事务的删除方法
        /// 
        /// 实现共享Connection的对象
        /// 实体类对象
        /// 影响的记录行数
        internal static int Delete(Connection connection, OperationRecordInfo operationRecordInfo)
        {
            return ExcuteDeleteCommand(connection.Command, operationRecordInfo);
        }
        /// 
        /// 执行删除命令
        /// 
        /// Command对象
        /// 对象查询语句
        /// 参数列表
        /// 影响的记录行数
        internal static int ExcuteDeleteCommand(SqlCommand cmd, string oql, ParameterList parameters)
        {
            //解析过滤部份Sql语句
            string filterString = SyntaxAnalyzer.ParseSql(oql, new OperationRecordInfoMap());
            if (filterString != string.Empty)
            {
                filterString = " where " + filterString;
            }
            cmd.Parameters.Clear();
            cmd.CommandText = "delete from OperationRecordInfo " + filterString;
            //添加参数
            if (parameters != null)
            {
                foreach (string key in parameters.Keys)
                {
                    cmd.Parameters.Add(new SqlParameter(key, parameters[key]));
                }
            }
            return cmd.ExecuteNonQuery();
        }
        /// 
        /// 不使用事务的删除方法
        /// 
        /// 对象查询语句
        /// 参数列表
        /// 影响的记录行数
        internal static int Delete(string oql, ParameterList parameters)
        {
            using (SqlConnection conn = new SqlConnection(Connection.ConnectionString))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    return ExcuteDeleteCommand(cmd, oql, parameters);
                }
            }
        }
        /// 
        /// 使用事务的删除方法
        /// 
        /// 实现共享Connection的对象
        /// 对象查询语句
        /// 参数列表
        /// 影响的记录行数
        internal static int Delete(Connection connection, string oql, ParameterList parameters)
        {
            return ExcuteDeleteCommand(connection.Command, oql, parameters);
        }
        #endregion
        #region 更新实体操作
        /// 
        /// 更新
        /// 
        /// Command对象
        /// 实体类对象
        /// 影响的记录行数
        internal static int ExcuteUpdateCommand(SqlCommand cmd, OperationRecordInfo operationRecordInfo)
        {
            cmd.CommandText = "update OperationRecordInfo set PatientId=@PatientId,ApplyId=@ApplyId,OperationRecordId=@OperationRecordId,OperationCutId=@OperationCutId,OperationCut=@OperationCut,OperationLevelId=@OperationLevelId,OperationLevel=@OperationLevel,OperationSiteId=@OperationSiteId,OperationSite=@OperationSite,PuncturePosition=@PuncturePosition,PunctureSite=@PunctureSite,ConduitDepth=@ConduitDepth,NeedleNumber=@NeedleNumber,NeedleDirection=@NeedleDirection,PunctureRemark=@PunctureRemark,PuncturePosition2=@PuncturePosition2,PunctureSite2=@PunctureSite2,ConduitDepth2=@ConduitDepth2,NeedleNumber2=@NeedleNumber2,NeedleDirection2=@NeedleDirection2,PunctureRemark2=@PunctureRemark2,IntubateMode=@IntubateMode,IntubateType=@IntubateType,IntubateNumber=@IntubateNumber,IntubateDepth=@IntubateDepth,IntubatePosition=@IntubatePosition,AnaesthesiaMode=@AnaesthesiaMode,IntubatePath=@IntubatePath,IntubateOther=@IntubateOther,NeuroPlexusShallow=@NeuroPlexusShallow,NeuroPlexusAround=@NeuroPlexusAround,BrachialPlexus=@BrachialPlexus,VenipunctureType=@VenipunctureType,VenipunctureDeep=@VenipunctureDeep,VenipunctureCenter=@VenipunctureCenter,Experts=@Experts,RuleAnesthesiaDoctor=@RuleAnesthesiaDoctor,RuleNurse=@RuleNurse,AnesthesiaPlane=@AnesthesiaPlane,SpecialSituation=@SpecialSituation,AnesthesiaEffect=@AnesthesiaEffect,OperationAnalgesiaMode=@OperationAnalgesiaMode,Whereabouts=@Whereabouts,AnesthesiaMethodFirstName=@AnesthesiaMethodFirstName,AnesthesiaMethodLastName=@AnesthesiaMethodLastName,AnesthesiaMethodChangeReason=@AnesthesiaMethodChangeReason,AnesthesiaMethodChangeTime=@AnesthesiaMethodChangeTime,AnesthesiaSucceed=@AnesthesiaSucceed,AnesthesiaSucceedTime=@AnesthesiaSucceedTime,TourNurseSucceed=@TourNurseSucceed,TourNurseSucceedTime=@TourNurseSucceedTime,InstrumentNurseSucceed=@InstrumentNurseSucceed,InstrumentNurseSucceedTime=@InstrumentNurseSucceedTime,InfoRemark=@InfoRemark,OperatorId=@OperatorId,OperatorTime=@OperatorTime,StewardSober=@StewardSober,StewardBreathing=@StewardBreathing,StewardLimbActivity=@StewardLimbActivity,StewardNumber=@StewardNumber,Extend1=@Extend1,Extend2=@Extend2,Extend3=@Extend3,Extend4=@Extend4,Extend5=@Extend5 where Id=@Id";
            //从实体中取出值放入Command的参数列表
            cmd.Parameters.Add(new SqlParameter("@PatientId", operationRecordInfo.PatientId.HasValue ? (object)operationRecordInfo.PatientId.Value : (object)DBNull.Value));
            cmd.Parameters.Add(new SqlParameter("@ApplyId", operationRecordInfo.ApplyId.HasValue ? (object)operationRecordInfo.ApplyId.Value : (object)DBNull.Value));
            cmd.Parameters.Add(new SqlParameter("@OperationRecordId", operationRecordInfo.OperationRecordId.HasValue ? (object)operationRecordInfo.OperationRecordId.Value : (object)DBNull.Value));
            cmd.Parameters.Add(new SqlParameter("@OperationCutId", operationRecordInfo.OperationCutId == null ? (object)DBNull.Value : (object)operationRecordInfo.OperationCutId));
            cmd.Parameters.Add(new SqlParameter("@OperationCut", operationRecordInfo.OperationCut == null ? (object)DBNull.Value : (object)operationRecordInfo.OperationCut));
            cmd.Parameters.Add(new SqlParameter("@OperationLevelId", operationRecordInfo.OperationLevelId == null ? (object)DBNull.Value : (object)operationRecordInfo.OperationLevelId));
            cmd.Parameters.Add(new SqlParameter("@OperationLevel", operationRecordInfo.OperationLevel == null ? (object)DBNull.Value : (object)operationRecordInfo.OperationLevel));
            cmd.Parameters.Add(new SqlParameter("@OperationSiteId", operationRecordInfo.OperationSiteId == null ? (object)DBNull.Value : (object)operationRecordInfo.OperationSiteId));
            cmd.Parameters.Add(new SqlParameter("@OperationSite", operationRecordInfo.OperationSite == null ? (object)DBNull.Value : (object)operationRecordInfo.OperationSite));
            cmd.Parameters.Add(new SqlParameter("@PuncturePosition", operationRecordInfo.PuncturePosition == null ? (object)DBNull.Value : (object)operationRecordInfo.PuncturePosition));
            cmd.Parameters.Add(new SqlParameter("@PunctureSite", operationRecordInfo.PunctureSite == null ? (object)DBNull.Value : (object)operationRecordInfo.PunctureSite));
            cmd.Parameters.Add(new SqlParameter("@ConduitDepth", operationRecordInfo.ConduitDepth == null ? (object)DBNull.Value : (object)operationRecordInfo.ConduitDepth));
            cmd.Parameters.Add(new SqlParameter("@NeedleNumber", operationRecordInfo.NeedleNumber == null ? (object)DBNull.Value : (object)operationRecordInfo.NeedleNumber));
            cmd.Parameters.Add(new SqlParameter("@NeedleDirection", operationRecordInfo.NeedleDirection == null ? (object)DBNull.Value : (object)operationRecordInfo.NeedleDirection));
            cmd.Parameters.Add(new SqlParameter("@PunctureRemark", operationRecordInfo.PunctureRemark == null ? (object)DBNull.Value : (object)operationRecordInfo.PunctureRemark));
            cmd.Parameters.Add(new SqlParameter("@PuncturePosition2", operationRecordInfo.PuncturePosition2 == null ? (object)DBNull.Value : (object)operationRecordInfo.PuncturePosition2));
            cmd.Parameters.Add(new SqlParameter("@PunctureSite2", operationRecordInfo.PunctureSite2 == null ? (object)DBNull.Value : (object)operationRecordInfo.PunctureSite2));
            cmd.Parameters.Add(new SqlParameter("@ConduitDepth2", operationRecordInfo.ConduitDepth2 == null ? (object)DBNull.Value : (object)operationRecordInfo.ConduitDepth2));
            cmd.Parameters.Add(new SqlParameter("@NeedleNumber2", operationRecordInfo.NeedleNumber2 == null ? (object)DBNull.Value : (object)operationRecordInfo.NeedleNumber2));
            cmd.Parameters.Add(new SqlParameter("@NeedleDirection2", operationRecordInfo.NeedleDirection2 == null ? (object)DBNull.Value : (object)operationRecordInfo.NeedleDirection2));
            cmd.Parameters.Add(new SqlParameter("@PunctureRemark2", operationRecordInfo.PunctureRemark2 == null ? (object)DBNull.Value : (object)operationRecordInfo.PunctureRemark2));
            cmd.Parameters.Add(new SqlParameter("@IntubateMode", operationRecordInfo.IntubateMode == null ? (object)DBNull.Value : (object)operationRecordInfo.IntubateMode));
            cmd.Parameters.Add(new SqlParameter("@IntubateType", operationRecordInfo.IntubateType == null ? (object)DBNull.Value : (object)operationRecordInfo.IntubateType));
            cmd.Parameters.Add(new SqlParameter("@IntubateNumber", operationRecordInfo.IntubateNumber == null ? (object)DBNull.Value : (object)operationRecordInfo.IntubateNumber));
            cmd.Parameters.Add(new SqlParameter("@IntubateDepth", operationRecordInfo.IntubateDepth == null ? (object)DBNull.Value : (object)operationRecordInfo.IntubateDepth));
            cmd.Parameters.Add(new SqlParameter("@IntubatePosition", operationRecordInfo.IntubatePosition == null ? (object)DBNull.Value : (object)operationRecordInfo.IntubatePosition));
            cmd.Parameters.Add(new SqlParameter("@AnaesthesiaMode", operationRecordInfo.AnaesthesiaMode == null ? (object)DBNull.Value : (object)operationRecordInfo.AnaesthesiaMode));
            cmd.Parameters.Add(new SqlParameter("@IntubatePath", operationRecordInfo.IntubatePath == null ? (object)DBNull.Value : (object)operationRecordInfo.IntubatePath));
            cmd.Parameters.Add(new SqlParameter("@IntubateOther", operationRecordInfo.IntubateOther == null ? (object)DBNull.Value : (object)operationRecordInfo.IntubateOther));
            cmd.Parameters.Add(new SqlParameter("@NeuroPlexusShallow", operationRecordInfo.NeuroPlexusShallow == null ? (object)DBNull.Value : (object)operationRecordInfo.NeuroPlexusShallow));
            cmd.Parameters.Add(new SqlParameter("@NeuroPlexusAround", operationRecordInfo.NeuroPlexusAround == null ? (object)DBNull.Value : (object)operationRecordInfo.NeuroPlexusAround));
            cmd.Parameters.Add(new SqlParameter("@BrachialPlexus", operationRecordInfo.BrachialPlexus == null ? (object)DBNull.Value : (object)operationRecordInfo.BrachialPlexus));
            cmd.Parameters.Add(new SqlParameter("@VenipunctureType", operationRecordInfo.VenipunctureType == null ? (object)DBNull.Value : (object)operationRecordInfo.VenipunctureType));
            cmd.Parameters.Add(new SqlParameter("@VenipunctureDeep", operationRecordInfo.VenipunctureDeep == null ? (object)DBNull.Value : (object)operationRecordInfo.VenipunctureDeep));
            cmd.Parameters.Add(new SqlParameter("@VenipunctureCenter", operationRecordInfo.VenipunctureCenter == null ? (object)DBNull.Value : (object)operationRecordInfo.VenipunctureCenter));
            cmd.Parameters.Add(new SqlParameter("@Experts", operationRecordInfo.Experts == null ? (object)DBNull.Value : (object)operationRecordInfo.Experts));
            cmd.Parameters.Add(new SqlParameter("@RuleAnesthesiaDoctor", operationRecordInfo.RuleAnesthesiaDoctor == null ? (object)DBNull.Value : (object)operationRecordInfo.RuleAnesthesiaDoctor));
            cmd.Parameters.Add(new SqlParameter("@RuleNurse", operationRecordInfo.RuleNurse == null ? (object)DBNull.Value : (object)operationRecordInfo.RuleNurse));
            cmd.Parameters.Add(new SqlParameter("@AnesthesiaPlane", operationRecordInfo.AnesthesiaPlane == null ? (object)DBNull.Value : (object)operationRecordInfo.AnesthesiaPlane));
            cmd.Parameters.Add(new SqlParameter("@SpecialSituation", operationRecordInfo.SpecialSituation == null ? (object)DBNull.Value : (object)operationRecordInfo.SpecialSituation));
            cmd.Parameters.Add(new SqlParameter("@AnesthesiaEffect", operationRecordInfo.AnesthesiaEffect == null ? (object)DBNull.Value : (object)operationRecordInfo.AnesthesiaEffect));
            cmd.Parameters.Add(new SqlParameter("@OperationAnalgesiaMode", operationRecordInfo.OperationAnalgesiaMode == null ? (object)DBNull.Value : (object)operationRecordInfo.OperationAnalgesiaMode));
            cmd.Parameters.Add(new SqlParameter("@Whereabouts", operationRecordInfo.Whereabouts == null ? (object)DBNull.Value : (object)operationRecordInfo.Whereabouts));
            cmd.Parameters.Add(new SqlParameter("@AnesthesiaMethodFirstName", operationRecordInfo.AnesthesiaMethodFirstName == null ? (object)DBNull.Value : (object)operationRecordInfo.AnesthesiaMethodFirstName));
            cmd.Parameters.Add(new SqlParameter("@AnesthesiaMethodLastName", operationRecordInfo.AnesthesiaMethodLastName == null ? (object)DBNull.Value : (object)operationRecordInfo.AnesthesiaMethodLastName));
            cmd.Parameters.Add(new SqlParameter("@AnesthesiaMethodChangeReason", operationRecordInfo.AnesthesiaMethodChangeReason == null ? (object)DBNull.Value : (object)operationRecordInfo.AnesthesiaMethodChangeReason));
            cmd.Parameters.Add(new SqlParameter("@AnesthesiaMethodChangeTime", operationRecordInfo.AnesthesiaMethodChangeTime.HasValue ? (object)operationRecordInfo.AnesthesiaMethodChangeTime.Value : (object)DBNull.Value));
            cmd.Parameters.Add(new SqlParameter("@AnesthesiaSucceed", operationRecordInfo.AnesthesiaSucceed == null ? (object)DBNull.Value : (object)operationRecordInfo.AnesthesiaSucceed));
            cmd.Parameters.Add(new SqlParameter("@AnesthesiaSucceedTime", operationRecordInfo.AnesthesiaSucceedTime.HasValue ? (object)operationRecordInfo.AnesthesiaSucceedTime.Value : (object)DBNull.Value));
            cmd.Parameters.Add(new SqlParameter("@TourNurseSucceed", operationRecordInfo.TourNurseSucceed == null ? (object)DBNull.Value : (object)operationRecordInfo.TourNurseSucceed));
            cmd.Parameters.Add(new SqlParameter("@TourNurseSucceedTime", operationRecordInfo.TourNurseSucceedTime.HasValue ? (object)operationRecordInfo.TourNurseSucceedTime.Value : (object)DBNull.Value));
            cmd.Parameters.Add(new SqlParameter("@InstrumentNurseSucceed", operationRecordInfo.InstrumentNurseSucceed == null ? (object)DBNull.Value : (object)operationRecordInfo.InstrumentNurseSucceed));
            cmd.Parameters.Add(new SqlParameter("@InstrumentNurseSucceedTime", operationRecordInfo.InstrumentNurseSucceedTime.HasValue ? (object)operationRecordInfo.InstrumentNurseSucceedTime.Value : (object)DBNull.Value));
            cmd.Parameters.Add(new SqlParameter("@InfoRemark", operationRecordInfo.InfoRemark == null ? (object)DBNull.Value : (object)operationRecordInfo.InfoRemark));
            cmd.Parameters.Add(new SqlParameter("@OperatorId", operationRecordInfo.OperatorId == null ? (object)DBNull.Value : (object)operationRecordInfo.OperatorId));
            cmd.Parameters.Add(new SqlParameter("@OperatorTime", operationRecordInfo.OperatorTime.HasValue ? (object)operationRecordInfo.OperatorTime.Value : (object)DBNull.Value));
            cmd.Parameters.Add(new SqlParameter("@StewardSober", operationRecordInfo.StewardSober == null ? (object)DBNull.Value : (object)operationRecordInfo.StewardSober));
            cmd.Parameters.Add(new SqlParameter("@StewardBreathing", operationRecordInfo.StewardBreathing == null ? (object)DBNull.Value : (object)operationRecordInfo.StewardBreathing));
            cmd.Parameters.Add(new SqlParameter("@StewardLimbActivity", operationRecordInfo.StewardLimbActivity == null ? (object)DBNull.Value : (object)operationRecordInfo.StewardLimbActivity));
            cmd.Parameters.Add(new SqlParameter("@StewardNumber", operationRecordInfo.StewardNumber == null ? (object)DBNull.Value : (object)operationRecordInfo.StewardNumber));
            cmd.Parameters.Add(new SqlParameter("@Extend1", operationRecordInfo.Extend1 == null ? (object)DBNull.Value : (object)operationRecordInfo.Extend1));
            cmd.Parameters.Add(new SqlParameter("@Extend2", operationRecordInfo.Extend2 == null ? (object)DBNull.Value : (object)operationRecordInfo.Extend2));
            cmd.Parameters.Add(new SqlParameter("@Extend3", operationRecordInfo.Extend3 == null ? (object)DBNull.Value : (object)operationRecordInfo.Extend3));
            cmd.Parameters.Add(new SqlParameter("@Extend4", operationRecordInfo.Extend4 == null ? (object)DBNull.Value : (object)operationRecordInfo.Extend4));
            cmd.Parameters.Add(new SqlParameter("@Extend5", operationRecordInfo.Extend5 == null ? (object)DBNull.Value : (object)operationRecordInfo.Extend5));
            cmd.Parameters.Add(new SqlParameter("@Id", operationRecordInfo.Id));
            return cmd.ExecuteNonQuery();
        }
        /// 
        /// 不使用事务的更新方法
        /// 
        /// 实体类对象
        /// 影响的记录行数
        internal static int Update(OperationRecordInfo operationRecordInfo)
        {
            using (SqlConnection conn = new SqlConnection(Connection.ConnectionString))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    return ExcuteUpdateCommand(cmd, operationRecordInfo);
                }
            }
        }
        /// 
        /// 使用事务的更新方法
        /// 
        /// 实现共享Connection的对象
        /// 实体类对象
        /// 影响的记录行数
        internal static int Update(Connection connection, OperationRecordInfo operationRecordInfo)
        {
            return ExcuteUpdateCommand(connection.Command, operationRecordInfo);
        }
        /// 
        /// 执行更新命令
        /// 
        /// Command对象
        /// 对象查询语句
        /// 参数列表
        /// 影响的记录行数
        internal static int ExcuteUpdateCommand(SqlCommand cmd, string oql, ParameterList parameters)
        {
            //解析过滤部份Sql语句
            string updateString = SyntaxAnalyzer.ParseSql(oql, new OperationRecordInfoMap());
            cmd.CommandText = "update OperationRecordInfo set " + updateString;
            cmd.Parameters.Clear();
            //添加参数
            if (parameters != null)
            {
                foreach (string key in parameters.Keys)
                {
                    cmd.Parameters.Add(new SqlParameter(key, parameters[key]));
                }
            }
            return cmd.ExecuteNonQuery();
        }
        /// 
        /// 不使用事务的更新方法
        /// 
        /// 对象查询语句
        /// 参数列表
        /// 影响的记录行数
        internal static int Update(string oql, ParameterList parameters)
        {
            using (SqlConnection conn = new SqlConnection(Connection.ConnectionString))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    return ExcuteUpdateCommand(cmd, oql, parameters);
                }
            }
        }
        /// 
        /// 使用事务的更新方法
        /// 
        /// 实现共享Connection的对象
        /// 对象查询语句
        /// 参数列表
        /// 影响的记录行数
        internal static int Update(Connection connection, string oql, ParameterList parameters)
        {
            return ExcuteUpdateCommand(connection.Command, oql, parameters);
        }
        #endregion
        #region 查询实体集合
        /// 
        /// 执行Command获取对象列表
        /// 
        /// Command对象
        /// 递归类型
        /// 递归深度
        /// 实体类对象列表
        internal static List ExcuteSelectCommand(SqlCommand cmd, RecursiveType recursiveType, int recursiveDepth)
        {
            List operationRecordInfoList = new List();
            using (SqlDataReader dr = cmd.ExecuteReader())
            {
                while (dr.Read())
                {
                    OperationRecordInfo operationRecordInfo = DataReaderToEntity(dr);
                    operationRecordInfoList.Add(operationRecordInfo);
                }
            }
            return operationRecordInfoList;
        }
        /// 
        /// 执行查询命令
        /// 
        /// Command对象
        /// 对象查询语句
        /// 参数列表
        /// 递归类型
        /// 递归深度
        /// 实体类对象集合
        internal static List ExcuteSelectCommand(SqlCommand cmd, string oql, ParameterList parameters, RecursiveType recursiveType, int recursiveDepth)
        {
            //解析过滤部份Sql语句
            string filterString = SyntaxAnalyzer.ParseSql(oql, new OperationRecordInfoMap());
            if (filterString != string.Empty)
            {
                if (filterString.Trim().ToLower().IndexOf("order ") != 0)
                    filterString = " where " + filterString;
            }
            cmd.Parameters.Clear();
            cmd.CommandText = "select * from OperationRecordInfo " + filterString;
            //添加参数
            if (parameters != null)
            {
                foreach (string key in parameters.Keys)
                {
                    cmd.Parameters.Add(new SqlParameter(key, parameters[key]));
                }
            }
            return ExcuteSelectCommand(cmd, recursiveType, recursiveDepth);
        }
        /// 
        /// 根据对象查询语句查询实体集合
        /// 
        /// 实体类对象集合
        internal static List Select()
        {
            using (SqlConnection conn = new SqlConnection(Connection.ConnectionString))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = "select * from OperationRecordInfo";
                    return ExcuteSelectCommand(cmd, RecursiveType.Parent, 1);
                }
            }
        }
        /// 
        /// 根据对象查询语句查询实体集合
        /// 
        /// 递归类型
        /// 递归深度
        /// 实体类对象集合
        internal static List Select(RecursiveType recursiveType, int recursiveDepth)
        {
            using (SqlConnection conn = new SqlConnection(Connection.ConnectionString))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = "select * from OperationRecordInfo";
                    return ExcuteSelectCommand(cmd, recursiveType, recursiveDepth);
                }
            }
        }
        /// 
        /// 根据对象查询语句查询实体集合
        /// 
        /// 对象查询语句
        /// 参数列表
        /// 实体类对象集合
        internal static List Select(string oql, ParameterList parameters)
        {
            using (SqlConnection conn = new SqlConnection(Connection.ConnectionString))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    return ExcuteSelectCommand(cmd, oql, parameters, RecursiveType.Parent, 1);
                }
            }
        }
        /// 
        /// 根据对象查询语句查询实体集合
        /// 
        /// 对象查询语句
        /// 参数列表
        /// 递归类型
        /// 递归深度
        /// 实体类对象集合
        internal static List Select(string oql, ParameterList parameters, RecursiveType recursiveType, int recursiveDepth)
        {
            using (SqlConnection conn = new SqlConnection(Connection.ConnectionString))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    return ExcuteSelectCommand(cmd, oql, parameters, recursiveType, recursiveDepth);
                }
            }
        }
        /// 
        /// 根据对象查询语句查询实体集合(启用事务)
        /// 
        /// 连接对象
        /// 对象查询语句
        /// 参数列表
        /// 递归类型
        /// 递归深度
        /// 实体类对象集合
        internal static List Select(Connection connection, string oql, ParameterList parameters, RecursiveType recursiveType, int recursiveDepth)
        {
            return ExcuteSelectCommand(connection.Command, oql, parameters, recursiveType, recursiveDepth);
        }
        #endregion
        #region 查询单个实体
        /// 
        /// 递归查询单个实体
        /// 
        /// Command对象
        /// 递归类型
        /// 递归深度
        /// 实体对象
        internal static OperationRecordInfo ExcuteSelectSingleCommand(SqlCommand cmd, RecursiveType recursiveType, int recursiveDepth)
        {
            OperationRecordInfo operationRecordInfo = null;
            using (SqlDataReader dr = cmd.ExecuteReader())
            {
                if (dr.Read())
                    operationRecordInfo = DataReaderToEntity(dr);
            }
            if (operationRecordInfo == null)
                return operationRecordInfo;
            return operationRecordInfo;
        }
        /// 
        /// 更据对象查询语句递归查询单个实体
        /// 
        /// Command对象
        /// 对象查询语句
        /// 参数列表
        /// 递归类型
        /// 递归深度
        /// 实体对象
        internal static OperationRecordInfo ExcuteSelectSingleCommand(SqlCommand cmd, string oql, ParameterList parameters, RecursiveType recursiveType, int recursiveDepth)
        {
            //解析过滤部份Sql语句
            string filterString = SyntaxAnalyzer.ParseSql(oql, new OperationRecordInfoMap());
            if (filterString != string.Empty)
            {
                filterString = " where " + filterString;
            }
            cmd.CommandText = "select * from OperationRecordInfo " + filterString;
            cmd.Parameters.Clear();
            //添加参数
            if (parameters != null)
            {
                foreach (string key in parameters.Keys)
                {
                    cmd.Parameters.Add(new SqlParameter(key, parameters[key]));
                }
            }
            return ExcuteSelectSingleCommand(cmd, recursiveType, recursiveDepth);
        }
        /// 
        /// 更据对象查询语句递归查询单个实体
        /// 
        /// Command对象
        /// 对象查询语句
        /// 参数列表
        /// 递归类型
        /// 递归深度
        /// 实体对象
        internal static OperationRecordInfo SelectSingle(string oql, ParameterList parameters, RecursiveType recursiveType, int recursiveDepth)
        {
            using (SqlConnection conn = new SqlConnection(Connection.ConnectionString))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    return ExcuteSelectSingleCommand(cmd, oql, parameters, recursiveType, recursiveDepth);
                }
            }
        }
        /// 
        /// 更据对象查询语句查询单个实体
        /// 
        /// Command对象
        /// 对象查询语句
        /// 参数列表
        /// 实体对象
        internal static OperationRecordInfo SelectSingle(string oql, ParameterList parameters)
        {
            return SelectSingle(oql, parameters, RecursiveType.Parent, 1);
        }
        /// 
        /// 更据对象查询语句并启用事务查询单个实体
        /// 
        /// 连接对象
        /// 对象查询语句
        /// 参数列表
        /// 实体对象
        internal static OperationRecordInfo SelectSingle(Connection connection, string oql, ParameterList parameters, RecursiveType recursiveType, int recursiveDepth)
        {
            return ExcuteSelectSingleCommand(connection.Command, oql, parameters, recursiveType, recursiveDepth);
        }
        /// 
        /// 更据主键值递归查询单个实体
        /// 
        /// Command对象
        /// 主键值
        /// 递归类型
        /// 递归深度
        /// 实体对象
        internal static OperationRecordInfo SelectSingle(SqlCommand cmd, int? id, RecursiveType recursiveType, int recursiveDepth)
        {
            cmd.Parameters.Clear();
            if (id.HasValue)
            {
                cmd.CommandText = "select * from OperationRecordInfo where Id=@pk";
                cmd.Parameters.Add(new SqlParameter("@pk", id.Value));
            }
            else
            {
                cmd.CommandText = "select * from OperationRecordInfo where Id is null";
            }
            return ExcuteSelectSingleCommand(cmd, recursiveType, recursiveDepth);
        }
        /// 
        /// 按主键字段查询特定实体
        /// 
        /// 主键值
        /// 实体类对象
        internal static OperationRecordInfo SelectSingle(int? id)
        {
            using (SqlConnection conn = new SqlConnection(Connection.ConnectionString))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    return SelectSingle(cmd, id, RecursiveType.Parent, 1);
                }
            }
        }
        /// 
        /// 按主键字段查询特定实体
        /// 
        /// 主键值
        /// 递归类型
        /// 递归深度
        /// 实体类对象
        internal static OperationRecordInfo SelectSingle(int? id, RecursiveType recursiveType, int recursiveDepth)
        {
            using (SqlConnection conn = new SqlConnection(Connection.ConnectionString))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    return SelectSingle(cmd, id, recursiveType, recursiveDepth);
                }
            }
        }
        /// 
        /// 使用事务并按主键字段查询特定实体
        /// 
        /// 连接对象
        /// 主键值
        /// 实体类对象
        internal static OperationRecordInfo SelectSingle(Connection connection, int? id, RecursiveType recursiveType, int recursiveDepth)
        {
            return SelectSingle(connection.Command, id, recursiveType, recursiveDepth);
        }
        #endregion
        /// 
        /// 从DataReader中取出值生成实体对象
        /// 
        /// 查询对象
        /// 过滤条件字符串
        private static OperationRecordInfo DataReaderToEntity(SqlDataReader dr)
        {
            OperationRecordInfo entity = new OperationRecordInfo();
            if (dr["Id"] != System.DBNull.Value)
            {
                entity.Id = Convert.ToInt32(dr["Id"]);
            }
            if (dr["PatientId"] != System.DBNull.Value)
            {
                entity.PatientId = Convert.ToInt32(dr["PatientId"]);
            }
            if (dr["ApplyId"] != System.DBNull.Value)
            {
                entity.ApplyId = Convert.ToInt32(dr["ApplyId"]);
            }
            if (dr["OperationRecordId"] != System.DBNull.Value)
            {
                entity.OperationRecordId = Convert.ToInt32(dr["OperationRecordId"]);
            }
            if (dr["OperationCutId"] != System.DBNull.Value)
            {
                entity.OperationCutId = dr["OperationCutId"].ToString();
            }
            if (dr["OperationCut"] != System.DBNull.Value)
            {
                entity.OperationCut = dr["OperationCut"].ToString();
            }
            if (dr["OperationLevelId"] != System.DBNull.Value)
            {
                entity.OperationLevelId = dr["OperationLevelId"].ToString();
            }
            if (dr["OperationLevel"] != System.DBNull.Value)
            {
                entity.OperationLevel = dr["OperationLevel"].ToString();
            }
            if (dr["OperationSiteId"] != System.DBNull.Value)
            {
                entity.OperationSiteId = dr["OperationSiteId"].ToString();
            }
            if (dr["OperationSite"] != System.DBNull.Value)
            {
                entity.OperationSite = dr["OperationSite"].ToString();
            }
            if (dr["PuncturePosition"] != System.DBNull.Value)
            {
                entity.PuncturePosition = dr["PuncturePosition"].ToString();
            }
            if (dr["PunctureSite"] != System.DBNull.Value)
            {
                entity.PunctureSite = dr["PunctureSite"].ToString();
            }
            if (dr["ConduitDepth"] != System.DBNull.Value)
            {
                entity.ConduitDepth = dr["ConduitDepth"].ToString();
            }
            if (dr["NeedleNumber"] != System.DBNull.Value)
            {
                entity.NeedleNumber = dr["NeedleNumber"].ToString();
            }
            if (dr["NeedleDirection"] != System.DBNull.Value)
            {
                entity.NeedleDirection = dr["NeedleDirection"].ToString();
            }
            if (dr["PunctureRemark"] != System.DBNull.Value)
            {
                entity.PunctureRemark = dr["PunctureRemark"].ToString();
            }
            if (dr["PuncturePosition2"] != System.DBNull.Value)
            {
                entity.PuncturePosition2 = dr["PuncturePosition2"].ToString();
            }
            if (dr["PunctureSite2"] != System.DBNull.Value)
            {
                entity.PunctureSite2 = dr["PunctureSite2"].ToString();
            }
            if (dr["ConduitDepth2"] != System.DBNull.Value)
            {
                entity.ConduitDepth2 = dr["ConduitDepth2"].ToString();
            }
            if (dr["NeedleNumber2"] != System.DBNull.Value)
            {
                entity.NeedleNumber2 = dr["NeedleNumber2"].ToString();
            }
            if (dr["NeedleDirection2"] != System.DBNull.Value)
            {
                entity.NeedleDirection2 = dr["NeedleDirection2"].ToString();
            }
            if (dr["PunctureRemark2"] != System.DBNull.Value)
            {
                entity.PunctureRemark2 = dr["PunctureRemark2"].ToString();
            }
            if (dr["IntubateMode"] != System.DBNull.Value)
            {
                entity.IntubateMode = dr["IntubateMode"].ToString();
            }
            if (dr["IntubateType"] != System.DBNull.Value)
            {
                entity.IntubateType = dr["IntubateType"].ToString();
            }
            if (dr["IntubateNumber"] != System.DBNull.Value)
            {
                entity.IntubateNumber = dr["IntubateNumber"].ToString();
            }
            if (dr["IntubateDepth"] != System.DBNull.Value)
            {
                entity.IntubateDepth = dr["IntubateDepth"].ToString();
            }
            if (dr["IntubatePosition"] != System.DBNull.Value)
            {
                entity.IntubatePosition = dr["IntubatePosition"].ToString();
            }
            if (dr["AnaesthesiaMode"] != System.DBNull.Value)
            {
                entity.AnaesthesiaMode = dr["AnaesthesiaMode"].ToString();
            }
            if (dr["IntubatePath"] != System.DBNull.Value)
            {
                entity.IntubatePath = dr["IntubatePath"].ToString();
            }
            if (dr["IntubateOther"] != System.DBNull.Value)
            {
                entity.IntubateOther = dr["IntubateOther"].ToString();
            }
            if (dr["NeuroPlexusShallow"] != System.DBNull.Value)
            {
                entity.NeuroPlexusShallow = dr["NeuroPlexusShallow"].ToString();
            }
            if (dr["NeuroPlexusAround"] != System.DBNull.Value)
            {
                entity.NeuroPlexusAround = dr["NeuroPlexusAround"].ToString();
            }
            if (dr["BrachialPlexus"] != System.DBNull.Value)
            {
                entity.BrachialPlexus = dr["BrachialPlexus"].ToString();
            }
            if (dr["VenipunctureType"] != System.DBNull.Value)
            {
                entity.VenipunctureType = dr["VenipunctureType"].ToString();
            }
            if (dr["VenipunctureDeep"] != System.DBNull.Value)
            {
                entity.VenipunctureDeep = dr["VenipunctureDeep"].ToString();
            }
            if (dr["VenipunctureCenter"] != System.DBNull.Value)
            {
                entity.VenipunctureCenter = dr["VenipunctureCenter"].ToString();
            }
            if (dr["Experts"] != System.DBNull.Value)
            {
                entity.Experts = dr["Experts"].ToString();
            }
            if (dr["RuleAnesthesiaDoctor"] != System.DBNull.Value)
            {
                entity.RuleAnesthesiaDoctor = dr["RuleAnesthesiaDoctor"].ToString();
            }
            if (dr["RuleNurse"] != System.DBNull.Value)
            {
                entity.RuleNurse = dr["RuleNurse"].ToString();
            }
            if (dr["AnesthesiaPlane"] != System.DBNull.Value)
            {
                entity.AnesthesiaPlane = dr["AnesthesiaPlane"].ToString();
            }
            if (dr["SpecialSituation"] != System.DBNull.Value)
            {
                entity.SpecialSituation = dr["SpecialSituation"].ToString();
            }
            if (dr["AnesthesiaEffect"] != System.DBNull.Value)
            {
                entity.AnesthesiaEffect = dr["AnesthesiaEffect"].ToString();
            }
            if (dr["OperationAnalgesiaMode"] != System.DBNull.Value)
            {
                entity.OperationAnalgesiaMode = dr["OperationAnalgesiaMode"].ToString();
            }
            if (dr["Whereabouts"] != System.DBNull.Value)
            {
                entity.Whereabouts = dr["Whereabouts"].ToString();
            }
            if (dr["AnesthesiaMethodFirstName"] != System.DBNull.Value)
            {
                entity.AnesthesiaMethodFirstName = dr["AnesthesiaMethodFirstName"].ToString();
            }
            if (dr["AnesthesiaMethodLastName"] != System.DBNull.Value)
            {
                entity.AnesthesiaMethodLastName = dr["AnesthesiaMethodLastName"].ToString();
            }
            if (dr["AnesthesiaMethodChangeReason"] != System.DBNull.Value)
            {
                entity.AnesthesiaMethodChangeReason = dr["AnesthesiaMethodChangeReason"].ToString();
            }
            if (dr["AnesthesiaMethodChangeTime"] != System.DBNull.Value)
            {
                entity.AnesthesiaMethodChangeTime = Convert.ToDateTime(dr["AnesthesiaMethodChangeTime"]);
            }
            if (dr["AnesthesiaSucceed"] != System.DBNull.Value)
            {
                entity.AnesthesiaSucceed = dr["AnesthesiaSucceed"].ToString();
            }
            if (dr["AnesthesiaSucceedTime"] != System.DBNull.Value)
            {
                entity.AnesthesiaSucceedTime = Convert.ToDateTime(dr["AnesthesiaSucceedTime"]);
            }
            if (dr["TourNurseSucceed"] != System.DBNull.Value)
            {
                entity.TourNurseSucceed = dr["TourNurseSucceed"].ToString();
            }
            if (dr["TourNurseSucceedTime"] != System.DBNull.Value)
            {
                entity.TourNurseSucceedTime = Convert.ToDateTime(dr["TourNurseSucceedTime"]);
            }
            if (dr["InstrumentNurseSucceed"] != System.DBNull.Value)
            {
                entity.InstrumentNurseSucceed = dr["InstrumentNurseSucceed"].ToString();
            }
            if (dr["InstrumentNurseSucceedTime"] != System.DBNull.Value)
            {
                entity.InstrumentNurseSucceedTime = Convert.ToDateTime(dr["InstrumentNurseSucceedTime"]);
            }
            if (dr["InfoRemark"] != System.DBNull.Value)
            {
                entity.InfoRemark = dr["InfoRemark"].ToString();
            }
            if (dr["OperatorId"] != System.DBNull.Value)
            {
                entity.OperatorId = dr["OperatorId"].ToString();
            }
            if (dr["OperatorTime"] != System.DBNull.Value)
            {
                entity.OperatorTime = Convert.ToDateTime(dr["OperatorTime"]);
            }
            if (dr["StewardSober"] != System.DBNull.Value)
            {
                entity.StewardSober = dr["StewardSober"].ToString();
            }
            if (dr["StewardBreathing"] != System.DBNull.Value)
            {
                entity.StewardBreathing = dr["StewardBreathing"].ToString();
            }
            if (dr["StewardLimbActivity"] != System.DBNull.Value)
            {
                entity.StewardLimbActivity = dr["StewardLimbActivity"].ToString();
            }
            if (dr["StewardNumber"] != System.DBNull.Value)
            {
                entity.StewardNumber = dr["StewardNumber"].ToString();
            }
            if (dr["Extend1"] != System.DBNull.Value)
            {
                entity.Extend1 = dr["Extend1"].ToString();
            }
            if (dr["Extend2"] != System.DBNull.Value)
            {
                entity.Extend2 = dr["Extend2"].ToString();
            }
            if (dr["Extend3"] != System.DBNull.Value)
            {
                entity.Extend3 = dr["Extend3"].ToString();
            }
            if (dr["Extend4"] != System.DBNull.Value)
            {
                entity.Extend4 = dr["Extend4"].ToString();
            }
            if (dr["Extend5"] != System.DBNull.Value)
            {
                entity.Extend5 = dr["Extend5"].ToString();
            }
            return entity;
        }
    }
}