学海无涯

导航

统计

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

设置类型转换处理类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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 中添加服务类:

1
SqlMapper.AddTypeHandler(new ResourceTypeHandler());

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/// <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   宁静致远.  阅读(33)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示