我有一个模型和方法如下。数据库中BudgetHealth的字段类型为smallint / null。 我想将检索到的值转换为字符串。代码编译但在运行时因错误而失败 我不能做转换。
写这个的最好方法是什么?
ID Result1 Result2 Result3 Result4
1 Positive Negative
2 Negative Inconclusive Positive
3 Negative Positive
4 Positive
答案 0 :(得分:0)
你可以尝试:
BudgetHealth = ((jj.BudgetHealth != null) ? jj.BudgetHealth.ToString() : String.Empty),
编辑:它实际上可能是这一行,而不是您的BudgetHealth:
jj.StatusDate.Equals(strstatusDate)
因为strstatusDate是DateTime
答案 1 :(得分:0)
我猜你应该在查询表达式中使用let关键字将cast int转换为字符串值。
let:在查询表达式中,存储子表达式的结果有时很有用,以便在后续子句中使用它。您可以使用let关键字执行此操作,该关键字将创建一个新的范围变量,并使用您提供的表达式的结果对其进行初始化。使用值初始化后,范围变量不能用于存储其他值。但是,如果范围变量包含可查询类型,则可以查询它。
我希望以下代码对您有所帮助。
objProjHnotes = (from jj in _objContext.tbl_Project_Status_Followup
let strBudgetHealth = Convert.ToString(jj.BudgetHealth)
where (jj.ProjectID.Equals(projectId)) && (jj.StatusDate.Equals(strstatusDate))
select new Projecthealthnotes()
{
ProjectId = jj.ProjectID,
BudgetHealth = strBudgetHealth,
TeamHealth = jj.TeamHealth
}).FirstOrDefault();