BaseBusiness唯一性判断

2017-02-27 13:06:19  访问(1468) 赞(0) 踩(0)

using System;
using System.Collections.Generic;
using System.Text;
using SlowX.Core.Entity;
using SlowX.DAL.Helpers;
using System.Data;

using System.Reflection;
using SlowX.Core.Classes;
using SlowX.Core.Functions;
using SlowX.Core.IBusiness;
using SlowX.DAL.Classes;
using SlowX.Core.ICoreClasses;
using SlowX.Core.Common;
using SlowX.Core.Model;
using SlowX.Core.CreateCodeClasses;
using SlowX.Core.DataSourceItems;
using SlowX.DAL.Functions;
using SlowX.Core.CacheContainers;
using SlowX.Core.CoreClasses;
using SlowX.DAL.DataBaseHelpers;
using SlowX.DAL.Utils;

namespace SlowX.Core.Business
{
   
    /// <summary>
    /// 
    /// </summary>
    public partial class BaseBusiness 
    {

        #region IUniqueHelperBusiness

        /// <summary>
        /// 唯一性相关的操作
        /// </summary>
        public IUniqueHelperBusiness i_IUniqueHelper
        {
            get
            {
                return this;
            }
        }


        /// <summary>
        /// 判断数据是否唯一
        /// </summary>
        /// <param name="pkValue"></param>
        /// <param name="dataColumnName"></param>
        /// <param name="dataColumnValue"></param>
        /// <param name="xdbHelper">数据库链接串</param>
        /// <returns></returns>
        public bool IsUnique
            (
                object pkValue,
                string dataColumnName,
                object dataColumnValue,
                DBHelper xdbHelper
            )
        {
            bool theResult = false;

            bool bIsCreate = true;

            if (xdbHelper == null)
            {
                xdbHelper
                    =
                    SlowX.DAL.Helpers.DBHelper.CreateDBHelper();
            }
            else
            {
                // 没有打开链接 //
                bIsCreate = xdbHelper.IsNotOpen();
            }

            try
            {
                if (bIsCreate)
                    xdbHelper.OpenDBHelper();

                BaseEntity entity = this.CreateBaseEntity();

                IQueryDriver iq = entity;

                EntityFieldInfo pkInfo
                    =
                    entity.GetIDEntityFieldInfo();

                iq.AddIQueryItemWithEntityFieldInfo(pkInfo, Enums.SqlLink.EmSqlLink.NotEqual, pkValue);
                iq.AddIQueryItemWithEntityFieldInfoName(dataColumnName, dataColumnValue);

                theResult = !IsExist(entity, xdbHelper);

                if (bIsCreate)
                    xdbHelper.EndDBHelper();

            }
            catch (Exception err)
            {
                if (bIsCreate)
                    xdbHelper.TranDBHelper();

                throw err;
            }
            finally
            {
                if (bIsCreate)
                    xdbHelper.FinallyDBHelper();
            }

            return theResult;

        }

        /// <summary>
        /// 判断数据是否唯一
        /// </summary>
        /// <param name="pkValue"></param>
        /// <param name="dataColumnName"></param>
        /// <param name="dataColumnValue"></param>
        /// <param name="configDataColumnName"></param>
        /// <param name="configDataColumnValue"></param>
        /// <param name="xdbHelper">数据库链接串</param>
        /// <returns></returns>
        public bool IsUnique
            (
                object pkValue,
                string dataColumnName,
                object dataColumnValue,
                string configDataColumnName,
                object configDataColumnValue,
                DBHelper xdbHelper
            )
        {
            bool theResult = false;

            bool bIsCreate = true;

            if (xdbHelper == null)
            {
                xdbHelper = SlowX.DAL.Helpers.DBHelper.CreateDBHelper();
            }
            else
            {
                // 没有打开链接 //
                bIsCreate = xdbHelper.IsNotOpen();
            }

            try
            {
                if (bIsCreate)
                    xdbHelper.OpenDBHelper();

                BaseEntity entity = this.CreateBaseEntity();

                IQueryDriver iq = entity;

                EntityFieldInfo pkInfo = entity.GetIDEntityFieldInfo();

                iq.AddIQueryItemWithEntityFieldInfo(pkInfo, Enums.SqlLink.EmSqlLink.NotEqual, pkValue);
                iq.AddIQueryItemWithEntityFieldInfoName(dataColumnName, dataColumnValue);
                iq.AddIQueryItemWithEntityFieldInfoName(configDataColumnName, configDataColumnValue);

                theResult = !IsExist(entity, xdbHelper);

                if (bIsCreate)
                    xdbHelper.EndDBHelper();

            }
            catch (Exception err)
            {
                if (bIsCreate)
                    xdbHelper.TranDBHelper();

                throw err;
            }
            finally
            {
                if (bIsCreate)
                    xdbHelper.FinallyDBHelper();
            }

            return theResult;
        }


        /// <summary>
        /// 判断数据是否唯一
        /// </summary>
        /// <param name="pkValue"></param>
        /// <param name="dataColumnName"></param>
        /// <param name="dataColumnValue"></param>
        /// <param name="configDataColumnName"></param>
        /// <param name="isToLower"></param>
        /// <param name="configDataColumnValue"></param>
        /// <param name="xdbHelper">数据库链接串</param>
        /// <returns></returns>
        public bool IsUnique
            (
                object pkValue,
                string dataColumnName,
                object dataColumnValue,
                string configDataColumnName,
                bool isToLower,
                object configDataColumnValue,
                DBHelper xdbHelper
            )
        {
            bool theResult = false;

            bool bIsCreate = true;

            if (xdbHelper == null)
            {
                xdbHelper = SlowX.DAL.Helpers.DBHelper.CreateDBHelper();
            }
            else
            {
                // 没有打开链接 //
                bIsCreate = xdbHelper.IsNotOpen();
            }

            try
            {
                if (bIsCreate)
                    xdbHelper.OpenDBHelper();

                BaseEntity entity = this.CreateBaseEntity();

                IQueryDriver iq = entity;

                EntityFieldInfo pkInfo = entity.GetIDEntityFieldInfo();

                iq.AddIQueryItemWithEntityFieldInfo(pkInfo, Enums.SqlLink.EmSqlLink.NotEqual, pkValue);
                iq.AddIQueryItemWithEntityFieldInfoName(dataColumnName, dataColumnValue);

                if (isToLower)
                {
                    if (configDataColumnValue == null)
                    {
                        iq.AddIQueryItemWithEntityFieldInfoName(configDataColumnName, configDataColumnValue);
                    }
                    else
                    {
                        iq.AddIQueryItemWithEntityFieldInfoName
                            (
                                configDataColumnName,
                                DataColumnQueryAssist.dataColumnQueryAssistEmStringCaseLower,
                                configDataColumnValue
                            );
                    }

                }
                else
                {
                    iq.AddIQueryItemWithEntityFieldInfoName(configDataColumnName, configDataColumnValue);
                }

                theResult = !IsExist(entity, xdbHelper);

                if (bIsCreate)
                    xdbHelper.EndDBHelper();

            }
            catch (Exception err)
            {
                if (bIsCreate)
                    xdbHelper.TranDBHelper();

                throw err;
            }
            finally
            {
                if (bIsCreate)
                    xdbHelper.FinallyDBHelper();
            }

            return theResult;
        }


        #endregion IUniqueHelperBusiness

    }

}


标签:BaseBusiness唯一性判断 

上一条:

下一条:


 

相关评论

评论加载中……
 

发表评论

类型:
内容:
  (Alt+Enter)
 
  ┈全部┈  
 
(显示默认分类)