using DataAgent.DataAccessor;
using DataAgent.Provider;
using System;
using System.Collections.Generic;
using System.Data;
using x8967e63e89e18c40;
using xaa33c3b341f02f34;namespace DataAgent.DataOperator
{
    public class RelationOperator<EntityType> : x538c7e7792088e78 where EntityType : new()
    {
        protected xf3c4f579038c366c x01f46f6042b6d18a;
        protected SortedList<int, RelationResource> x38d84b43cf7a0e1f;
        protected string xd0dc75a1e9116240;        public RelationOperator(BaseDataAccessor pBaseDataAccessor_In);        public string RelationSql { get; }        public int ClearRelation();
        public int DoCommand(string strCommand);
        public int DoQuery(string strSql, out DataSet pDataSet_Out);
        public int ExcuteRegularQuery(string[] staArr_SelectColumns, IList<Filter> pList_Condition_In, IDictionary<string, object> dicExtendParam_In, out DataSet pDataSet_Out);
        public int ExcuteRegularQuery(string[] staArr_SelectColumns, IList<Filter> pList_Condition_In, IDictionary<string, object> dicExtendParam_In, out DataSet pDataSet_Out, out Dictionary<Type, List<string>> dicTableAlias_Out);
        public int ExcuteRegularQuery(string[] staArr_SelectColumns, IList<Filter> pList_Condition_In, IDictionary<string, object> dicExtendParam_In, out DataSet pDataSet_Out, params IRelationColumnSortPair[] pIRelationColumnSortPairs_In);
        public int ExcuteRegularQuery(RelationPageParameter pRelationPageParameter, string[] staArr_SelectColumns, IList<Filter> pList_Condition_In, IDictionary<string, object> dicExtendParam_In, out DataSet pDataSet_Out, params IRelationColumnSortPair[] pIRelationColumnSortPairs_In);
        public int ExcuteRegularQuery(string[] staArr_SelectColumns, IList<Filter> pList_Condition_In, IDictionary<string, object> dicExtendParam_In, out DataSet pDataSet_Out, out Dictionary<Type, List<string>> dicTableAlias_Out, params IRelationColumnSortPair[] pIRelationColumnSortPairs_In);
        public int ExcuteRegularQuery(RelationPageParameter pRelationPageParameter, string[] staArr_SelectColumns, IList<Filter> pList_Condition_In, IDictionary<string, object> dicExtendParam_In, out DataSet pDataSet_Out, out Dictionary<Type, List<string>> dicTableAlias_Out, params IRelationColumnSortPair[] pIRelationColumnSortPairs_In);
        public RelationOperator<EntityType> JoinTo<LeftEntityType, RightEntityType>(JoinType pJoinType, string strLeftColumn, string strRightColumn);
        public RelationOperator<EntityType> JoinTo<LeftEntityType, RightEntityType>(JoinType pJoinType, string strLeftColumn, string strRightColumn, int LeftDuplicationIndex_In);
    }
}IList<Filter> filter;
            int hResult;
            DataSet ds = null;
            //(1)创建事务对象
            TransactionScope ts = new CConfigManage().TransactionScope; ;            string[] columns = {BE.HIS_USERS._SYS_USER_ID,
                                   BE.HIS_USERS._SYS_USER_NAME,
                                   BE.HIS_USERS._HIS_USER_ID,
                                   BE.HIS_USERS._USER_NAME,BE.HIS_USERS._USER_STATUS,
                                   BE.HIS_ROLES._ROLE_NAME
                               };
            RelationOperator<JZTMedicalPurchasing.BE.HIS_USERS> relationOperator = new RelationOperator<JZTMedicalPurchasing.BE.HIS_USERS>(ts.DataAccessor);
            relationOperator.JoinTo<BE.HIS_USERS, BE.HIS_ROLES>(JoinType.LEFT_OUTER_JOIN, BE.HIS_USERS._HIS_ROLE_ID, BE.HIS_ROLES._HIS_ROLE_ID)
                .JoinTo<BE.HIS_ROLES, BE.HIS_ROLE_PRIVILEGE>(JoinType.LEFT_OUTER_JOIN, BE.HIS_ROLES._HIS_ROLE_ID, BE.HIS_ROLE_PRIVILEGE._HIS_ROLE_ID)
                .JoinTo<BE.HIS_ROLE_PRIVILEGE, BE.HIS_PRIVILEGE>(JoinType.LEFT_OUTER_JOIN, BE.HIS_ROLE_PRIVILEGE._HIS_PRIVILEGE_ID, BE.HIS_PRIVILEGE._HIS_PRIVILEGE_ID);
            hResult = relationOperator.ExcuteRegularQuery(columns, filter, null, out ds);
上面中relationOperator.JoinTo<BE.HIS_USERS, BE.HIS_ROLES>(JoinType.LEFT_OUTER_JOIN, BE.HIS_USERS._HIS_ROLE_ID, BE.HIS_ROLES._HIS_ROLE_ID)
                .JoinTo<BE.HIS_ROLES, BE.HIS_ROLE_PRIVILEGE>(JoinType.LEFT_OUTER_JOIN, BE.HIS_ROLES._HIS_ROLE_ID, BE.HIS_ROLE_PRIVILEGE._HIS_ROLE_ID)
                .JoinTo<BE.HIS_ROLE_PRIVILEGE, BE.HIS_PRIVILEGE>(JoinType.LEFT_OUTER_JOIN, BE.HIS_ROLE_PRIVILEGE._HIS_PRIVILEGE_ID, BE.HIS_PRIVILEGE._HIS_PRIVILEGE_ID);
等效的SQL语句是什么(select ...)? 我看不懂这个