首页 > 其他分享 >Dapper 查询时智能枚举类型转换

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

时间:2024-05-09 09:56:56浏览次数:24  
标签:类型转换 ResourceType value 枚举 static new Dapper public

设置类型转换处理类:

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) { }
}

  

  

  

标签:类型转换,ResourceType,value,枚举,static,new,Dapper,public
From: https://www.cnblogs.com/friend/p/18181448

相关文章

  • DAPPER 事务 TRANSACTION
    https://www.cnblogs.com/friend/p/16754184.html\ publicasyncTask<int>Save(longmoldProducedProductId,List<MoldStandardResource>list){intresult=0;stringdelSql="DeleteMoldStandardResourceWhereMoldProducedProductId......
  • 枚举范围内的字符串
    我写的:publicintVowelStrings(string[]words,intleft,intright){strings="aeiou";intk=0;for(inti=left;i<=right;i++){intx=0,y=0;stringword=words[i];intwordLong......
  • go语言数据类型转换
    go语言数据类型转换golang不会对数据进行隐式的类型转换,只能手动去执行转换操作,表达式T(v)将值v转换为类型TT:就是数据类型V:就是需要转换的变量一、数值类型转换数值间转换的时候建议从小范围转换成大范围,比如int8转int16,大范围转换成小范围的时候,比如int16转int8,会发......
  • Redis中对数组的获取类型转换
    1#####Redis中对数组的获取类型转换23```java4//判断redis中键值key是否存在;5BooleancarWeizi_redis_service=redisService.hasKey("carWeizi_redis_service");6if(carWeizi_redis_service){7//获取对应的list数组传入时re......
  • 2015 ACM ICPC Singapore Regional D(折半枚举+二分)
    D-AssociationofComputerMaintenance题意给定至多350个小于100的质数,对于所有质数之积k将它分解为两个数a和b使得a*b=k。输出最小的a+b,并对1e9+7取模分析首先考虑想如果想让a+b最小,即让abs(a-b)最小。随后根据限制条件k的因子数不超过1e10,容易想到将k拆分成k1和k2,此......
  • 组合型枚举
    0.简介同$C_{m}^{n}$1.代码模板#include<bits/stdc++.h>usingnamespacestd;intn,m;vector<int>chosen;//x为当前选择的位,n-x+1为剩余可以选择的数量voidDFS(intx){ if(chosen.size()>m||chosen.size()+(n-x+1)<m){ return; } //选满了......
  • String.valueOf和强制类型转换(String)的区别
    String.valueOf和强制类型转换(String)在Java中都可以用来将其他类型的数据转换为字符串,但它们之间有一些重要的区别。空值处理:String.valueOf:当处理的对象为null时,String.valueOf会返回字符串"null",而不会抛出异常。(String):强制类型转换在面对null值时,会抛出NullPointerExc......
  • JTCR-枚举、装箱和注解-10
    枚举枚举定义了一个数据类型和该数据类型允许的若干个值,这些值为命名常量。一个枚举实例的值必须是定义的值。Java中,枚举是类类型,可以有构造器、方法和实例变量,甚至实现接口。但不能使用new实例化。enumName{value1,value2,...}//定义Namen=Name.value1;//......
  • TS — 枚举(详解)
    在TypeScript中,枚举(Enum)是一种数据类型,用于定义一组命名的常量值。枚举可以帮助开发者更清晰地表达意图,提高代码的可读性和可维护性。1.枚举的基本语法:enumDirection{Up,Down,Left,Right,}//Direction枚举定义了四个常量值:Up、Down、Left、Right。默认情......
  • day12_我的Java学习笔记 (package包、权限修饰符_private+缺省+protected+public、fin
    1.包IDEA配置自动导包:2.权限修饰符同一个类中的,【private、缺省、protected、public】都可以访问同一个包中的其他类,【private】不可以访问,【缺省、protected、public】都可以访问不同包下的无关类,【private、缺省、protected】都不可以访问,只有【public......