学海无涯

导航

Dapper 查询时智能枚举类型转换

设置类型转换处理类:

using APS.Core.ProductionMaterial.ProductionResourceAggregate;
using Dapper;

namespace APS.Infrastructure.Data.DapperRepositories;
public class ResourceTypeHandler : SqlMapper.TypeHandler<ResourceType>
{
  public override ResourceType Parse(object value)
  {
    return ResourceType.FromValue(Convert.ToInt32(value));
  }

  public override void SetValue(IDbDataParameter parameter, ResourceType value)
  {
    parameter.Value = value.Value;
  }
}

在 program 中添加服务类:

SqlMapper.AddTypeHandler(new ResourceTypeHandler());

 

/// <summary>
/// 资源类型
/// </summary>
public class ResourceType : SmartEnum<ResourceType>
{
  /// <summary>
  /// 无
  /// </summary>
  public static readonly ResourceType None = new(nameof(None), 0);
  /// <summary>
  /// 人工
  /// </summary>
  public static readonly ResourceType Worker = new(nameof(Worker), 1);
  /// <summary>
  /// 机器
  /// </summary>
  public static readonly ResourceType Machine = new(nameof(Machine), 2);

  public ResourceType(string name, int value) : base(name, value) { }
}

  

  

  

posted on 2024-05-09 09:50  宁静致远.  阅读(22)  评论(0编辑  收藏  举报