/// <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); }
/// <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); } }
/// <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); } }