1

PadLeft()以下に示すように、Razor View でメソッドを問題なく使用できます。

@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);

PadLeft()これでメソッドを使用する方法について何か考えはありますlambda expressionか?

4

1 に答える 1

2

を使用する前に、データをデータ ソースからメモリに取り込む必要があります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

于 2015-08-25T21:18:18.853 に答える