不能在 lambda 表达式中使用 PadLeft()
Cannot use PadLeft() in lambda expression
我可以在 Razor 视图中使用 PadLeft()
方法,如下所示,没有任何问题:
@Model.Project.PKey - @Model.IssueNum.ToString().PadLeft(5, '0')
但是,我无法使用相同的视图模型在控制器中创建相同的语句:
var result = dataContext.Select(m => new
IssueViewModel
{
ID = m.ID,
ProjectID = m.ProjectID
Key = m.Project.PKey + "-" + m.IssueNum.ToString().PadLeft(5, '0')
}
).ToDataSourceResult(request);
你知道如何在这个 lambda expression
中使用 PadLeft()
方法吗?
在使用之前,您需要将数据从数据源导入内存 PadLeft
:
var result = dataContext.Select(
m => new { // Make a projection of all columns we need into an anonymous type
ID = m.ID,
ProjectID = m.ProjectID,
PKey = m.Project.PKey,
IssueNum = m.IssueNum
}) // Now bring the result from the data source into memory
.AsEnumerable()
// We are ready to make IssueModel from the parts prepared above:
.Select(m => new IssueModel {
ID = m.ID,
ProjectID = m.ProjectID,
Key = m.PKey + "-" + m.IssueNum.ToString().PadLeft(5, '0')
})
.ToDataSourceResult(request);
现在IssueModel
的创建是由LINQ-to-Object完成的,它支持PadLeft
。
我可以在 Razor 视图中使用 PadLeft()
方法,如下所示,没有任何问题:
@Model.Project.PKey - @Model.IssueNum.ToString().PadLeft(5, '0')
但是,我无法使用相同的视图模型在控制器中创建相同的语句:
var result = dataContext.Select(m => new
IssueViewModel
{
ID = m.ID,
ProjectID = m.ProjectID
Key = m.Project.PKey + "-" + m.IssueNum.ToString().PadLeft(5, '0')
}
).ToDataSourceResult(request);
你知道如何在这个 lambda expression
中使用 PadLeft()
方法吗?
在使用之前,您需要将数据从数据源导入内存 PadLeft
:
var result = dataContext.Select(
m => new { // Make a projection of all columns we need into an anonymous type
ID = m.ID,
ProjectID = m.ProjectID,
PKey = m.Project.PKey,
IssueNum = m.IssueNum
}) // Now bring the result from the data source into memory
.AsEnumerable()
// We are ready to make IssueModel from the parts prepared above:
.Select(m => new IssueModel {
ID = m.ID,
ProjectID = m.ProjectID,
Key = m.PKey + "-" + m.IssueNum.ToString().PadLeft(5, '0')
})
.ToDataSourceResult(request);
现在IssueModel
的创建是由LINQ-to-Object完成的,它支持PadLeft
。