【发布时间】:2014-08-06 15:05:14
【问题描述】:
我正在尝试向 var "issue" 添加一条新记录。我从 SQL Server 数据库中获取 XXX 列表,并为 jTable 网格返回如下:
public dynamic XXXList(int CCC)
{
try
{
var issue = db.XXX.ToList().
Select(c => new { DisplayText = c.AAA, Value = c.BBB, c.CCC}).
Where(h => h.HHH == JJJ);
return (new { Result = "OK", Options = issue });
}
catch (Exception ex)
{
return (new { Result = "ERROR", Message = ex.Message });
}
}
函数返回:
{
"$id": "1",
"Result": "OK",
"Options": [
{
"$id": "2",
"DisplayText": "Food and Beverages",
"Value": 4,
"CCC": 4
},
{
"$id": "3",
"DisplayText": "Wrong software versions",
"Value": 5,
"CCC": 4
}
]
}
如何在返回之前向问题变量添加另一条记录? 示例:
{
"DisplayText": "new display text",
"Value": 5,
"CCC": 4
}
编辑:
这是我应用答案后的功能:
public dynamic XXXList(int CCC)
{
try
{
var newRecord = new[] { new { DisplayText = "None", Value = -1, CCC = -1} };
var issue = db.ProjectXXXs.Where(h => h.CCC == JJJ).Select(c => new { DisplayText = c.AAA, Value = c.BBB, c.CCC }).ToList().Concat(newRecord);
return (new { Result = "OK", Options = issue });
}
catch (Exception ex)
{
return (new { Result = "ERROR", Message = ex.Message });
}
}
非常感谢大家的帮助。
【问题讨论】:
-
为什么要调用
ToList()之前投影和过滤? -
感谢您指出这一点。我把它移到了哪里。如果你不介意我问这有什么不同?
-
它将返回表中的每一行,创建对象,然后在内存中过滤它们,而不是在 SQL 查询中添加
where... -
感谢特雷弗的解释。