Browse Source

Merge pull request #738 from colinin/fixed-type-error

fixed type errors
pull/741/head
yx lin 3 years ago
committed by GitHub
parent
commit
5d7fa35bae
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      apps/vue/src/components/Table/src/types/advancedSearch.ts
  2. 45
      aspnet-core/modules/dynamic-queryable/LINGYUN.Abp.Dynamic.Queryable.Application/LINGYUN/Abp/Dynamic/Queryable/DynamicQueryableAppService.cs

2
apps/vue/src/components/Table/src/types/advancedSearch.ts

@ -71,7 +71,7 @@ export enum DynamicComparison {
/** 空 */
Null = 12,
/** 非空 */
NotNull = 12,
NotNull = 13,
}
/** 动态查询字段 */

45
aspnet-core/modules/dynamic-queryable/LINGYUN.Abp.Dynamic.Queryable.Application/LINGYUN/Abp/Dynamic/Queryable/DynamicQueryableAppService.cs

@ -86,20 +86,21 @@ public abstract class DynamicQueryableAppService<TEntity, TEntityDto> : Applicat
isNullableType = true;
propertyType = propertyType.GetGenericArguments().FirstOrDefault();
}
var typeCode = Type.GetTypeCode(propertyType);
switch (typeCode)
var typeFullName = propertyType.FullName.ToLower();
switch (typeFullName)
{
case TypeCode.Int16:
case TypeCode.Int32:
case TypeCode.Int64:
case TypeCode.UInt16:
case TypeCode.UInt32:
case TypeCode.UInt64:
case TypeCode.Single:
case TypeCode.Byte:
case TypeCode.Double:
case TypeCode.SByte:
case TypeCode.Decimal:
case "System.Int16":
case "System.Int32":
case "System.Int64":
case "System.UInt16":
case "System.UInt32":
case "System.UInt64":
case "System.Single":
case "System.Double":
case "System.Byte":
case "System.SByte":
case "System.Decimal":
// 数值类型只支持如下操作符
// 小于、小于等于、大于、大于等于、等于、不等于、空、非空
availableComparator.AddRange(new[]
@ -113,15 +114,16 @@ public abstract class DynamicQueryableAppService<TEntity, TEntityDto> : Applicat
});
if (isNullableType)
{
availableComparator.AddRange(new []
availableComparator.AddRange(new[]
{
DynamicComparison.Null,
DynamicComparison.NotNull
});
}
return ("number", availableComparator.ToArray());
case TypeCode.Boolean:
// 布尔类型只支持如下操作符
case "System.Boolean":
case "System.Guid":
// 布尔、Guid类型只支持如下操作符
// 等于、不等于、空、非空
availableComparator.AddRange(new[]
{
@ -137,11 +139,11 @@ public abstract class DynamicQueryableAppService<TEntity, TEntityDto> : Applicat
});
}
return ("boolean", availableComparator.ToArray());
case TypeCode.Char:
case TypeCode.String:
case "System.Char":
case "System.String":
// 字符类型支持所有操作符
return ("string", availableComparator.ToArray());
case TypeCode.DateTime:
case "System.DateTime":
// 时间类型只支持如下操作符
// 小于、小于等于、大于、大于等于、等于、不等于、空、非空
availableComparator.AddRange(new[]
@ -163,9 +165,8 @@ public abstract class DynamicQueryableAppService<TEntity, TEntityDto> : Applicat
}
return ("Date", availableComparator.ToArray());
default:
case TypeCode.Object:
case TypeCode.Empty:
case TypeCode.DBNull:
case "System.Object":
case "System.DBNull":
if (isNullableType)
{
availableComparator.AddRange(new[]

Loading…
Cancel
Save