Beispiel #1
0
        /// <summary>
        /// 过滤
        /// </summary>
        /// <param name="dialect">Sql方言</param>
        /// <param name="matedata">实体元数据解析器</param>
        /// <param name="register">实体别名注册器</param>
        /// <param name="join">Join子句</param>
        /// <param name="where">Where子句</param>
        /// <param name="type">类型</param>
        /// <param name="alias">表别名</param>
        private void Filter(IDialect dialect, IEntityMatedata matedata, IEntityAliasRegister register, IJoinClause join, IWhereClause where, Type type, string alias)
        {
            if (type == null)
            {
                return;
            }

            if (string.IsNullOrWhiteSpace(alias))
            {
                return;
            }

            if (typeof(IDelete).IsAssignableFrom(type) == false)
            {
                return;
            }

            var isDeleted = $"{dialect.SafeName(alias)}.{dialect.SafeName(matedata.GetColumn(type, "IsDeleted"))}";

            if (register.FromType == type)
            {
                where.Where(isDeleted, false);
                return;
            }

            join.Find(type)?.On(isDeleted, false);
        }
Beispiel #2
0
 /// <summary>
 /// 过滤
 /// </summary>
 private void Filter(IWhereClause whereClause, Type type, string alias)
 {
     if (type == null)
     {
         return;
     }
     if (string.IsNullOrWhiteSpace(alias))
     {
         return;
     }
     if (typeof(IDelete).IsAssignableFrom(type))
     {
         whereClause.Where($"{alias}.IsDeleted", false);
     }
 }
Beispiel #3
0
 /// <summary>
 /// 过滤
 /// </summary>
 private void Filter(IDialect dialect, IEntityMatedata matedata, IWhereClause where, Type type, string alias)
 {
     if (type == null)
     {
         return;
     }
     if (string.IsNullOrWhiteSpace(alias))
     {
         return;
     }
     if (typeof(IDelete).IsAssignableFrom(type))
     {
         where.Where($"{dialect.SafeName( alias )}.{dialect.SafeName( matedata.GetColumn( type, "IsDeleted" ) )}", false);
     }
 }