【发布时间】:2017-12-30 01:16:10
【问题描述】:
我在对象数组中有一个带有int 值的状态属性。下面是对象数组的输出。
[
{
"enterpriseServiceId": 1,
"enterpriseServices": {},
"status": 3,
"id": 1,
"createdOn": "2017-12-29T17:58:15.4855946",
"createdBy": "System",
"modifiedOn": "2017-12-29T17:58:15.4855946",
"modifiedBy": "System"
},
{
"enterpriseServiceId": 2,
"enterpriseServices": {},
"status": 1,
"id": 2,
"createdOn": "2017-12-29T17:58:15.4855946",
"createdBy": "System",
"modifiedOn": "2017-12-29T17:58:15.4855946",
"modifiedBy": "System"
}
]
status 属性是枚举值类型。我正在尝试将其转换为字符串值,以便在输出中返回时更容易阅读。
下面是我从 sql server 数据库中获取数据的代码。
枚举
namespace CoreLibrary.Models.Enums
{
public static class Common
{
public enum Status
{
Active = 1,
InActive,
Completed,
Failed,
InProgress,
Pause,
Resume,
Skip,
Running
}
}
}
实体模型:
namespace CoreLibrary.Models.Entities
{
public class Deployments : BaseProperties
{
public int EnterpriseServiceId { get; set; }
[ForeignKey("EnterpriseServiceId")]
public virtual EnterpriseServices EnterpriseServices { get; set; }
public Common.Status Status { get; set; }
}
}
从数据库中检索数据的方法:
[HttpGet("~/api/Deployments/GetWithJoins")]
public JsonResult GetWithJoins()
{
try
{
// includeList for including data from external tables (JOIN Query)
var includeList = new List<Expression<Func<Deployments, object>>>();
includeList.Add(d => d.EnterpriseServices);
IEnumerable<Deployments> result = _repository.GetByIdWithJoins(queryable: includeList).ToList();
return Json(result);
}
catch (Exception ex)
{
var innerException = ex.InnerException == null ? null : ex.InnerException.Message.ToString();
Response.StatusCode = (int)HttpStatusCode.BadRequest;
return Json(new { status = "failed", message = ex.Message.ToString(), innerException = innerException });
}
}
结果变量返回我在本文开头分享的输出。我正在尝试将status 转换为返回string 值而不是int。
我不确定这是否可能,或者它是将status int 输出为字符串值的正确方法?
我在网上试过,但我没有找到满足我要求的解决方案。我将不胜感激你们可以提供的任何帮助。 :)
【问题讨论】:
-
您可以简单地将 int 转换为枚举?正如这里已经讨论过的:stackoverflow.com/questions/29482/cast-int-to-enum-in-c-sharp
-
嗯,它更像是一个单一的 int 到字符串。如何在不迭代每个对象以更新
status的情况下转换对象数组? -
你的类部署是内部生成的吗?
-
嗯,它是我为模型创建的一个类。我希望这能回答问题?
-
你可以简单地在那个类中有一个字符串属性:
public string StatusText { get { return Status.ToString(); } }
标签: c# asp.net .net enums asp.net-core-mvc