首页 > 解决方案 > 从模型中获取字符串值

问题描述

我很难从模型中获取字符串值。相反,即使在我尝试转换值之后,我也会得到一个数值。

这是我的代码

var ExitStatus = _repository.GetExitStatusById(emp.StatusId).Result;
response = new GetExitResponse();
response.Exits = new HashSet<EmployeeExitItem>()
{
    new EmployeeExitItem()
    {
          Action = (EExitActions)emp.ActionId,
          EmployeeId = emp.EmployeeId,
          ExitId = emp.ExitId,
          KickoffDate = emp.KickoffDate,
          Status = ParseEnum<EExitStatus>(emp.StatusId.ToString()),
          StatusDescription = ParseEnum<EExitStatusDescription>(ExitStatus.StatusDescription.ToString())
    }
};


public static T ParseEnum<T>(string value)
{
    return (T)Enum.Parse(typeof(T), value, true);
}

public async Task<ExitStatus> GetExitStatusById(int StatusId)
{
    var sql = $"SELECT top 1 * FROM lu.ExitStatus where StatusId = '{StatusId}'";
    await using var connection = new SqlConnection(_connectionString);
    connection.Open();
    var x = await connection.QueryAsync<ExitStatus>(sql);
    return x.FirstOrDefault();
}


public partial class EmployeeExit
{
    public Guid ExitId { get; set; }
    public Guid EmployeeId { get; set; }
    public DateTime KickoffDate { get; set; }
    public int ActionId { get; set; }
    public int StatusId { get; set; }
    public string StatusDescription { get; set; }

    [JsonIgnore]
    [BindNever]
    public string ModifiedBy { get; set; }

    public Guid? OpportunityId { get; set; }
    public int ClaimId { get; set; }

}


using System.Text.Json.Serialization;

namespace Digital.HrAssist.Services.Models
{
    [JsonConverter(typeof(JsonStringEnumConverter))]
    public enum EExitStatusDescription 
    {
        Started,
        Incomplete,
        Completed,
        Cancelled,
        SubmittedForProcessing
    }
}

lu.ExitStatus 表附在此处 lu 退出状态表

问题是我得到一个数字而不是字符串值。例如,我想要“开始”而不是 1。这是专门针对StatusDescription

标签: c#

解决方案


推荐阅读