我如何把这个自定义Linq查询查看

本文关键字:Linq 查询 自定义 | 更新日期: 2023-09-27 18:06:06

我是Linq的新手,可能需要一些帮助。我试图设置自定义Linq查询到MVC视图,但我不能真正弄清楚如何?

下面是我的actionresult 的代码

from st in db。统计

        orderby
            st.ID descending
        select new 
        {
            st.ID,
            st.Date,
            st.Created,
            st.Accepted,
            st.Ended,
            Totaltime =
                (SqlFunctions.StringConvert((double) SqlFunctions.DateDiff("ss", st.Created, st.Ended)/60) + ":" +
                 ("0" + SqlFunctions.StringConvert((double) SqlFunctions.DateDiff("ss", st.Created, st.Ended)%60))
                     .Substring(
                         ("0" +
                          SqlFunctions.StringConvert((double) SqlFunctions.DateDiff("ss", st.Created, st.Ended)%60))
                             .Length - 2, 2)),
            Ordertime =
                (SqlFunctions.StringConvert((double) SqlFunctions.DateDiff("ss", st.Accepted, st.Ended)/60) +
                 ":" +
                 ("0" +
                  SqlFunctions.StringConvert((double) SqlFunctions.DateDiff("ss", st.Accepted, st.Ended)%60))
                     .Substring(
                         ("0" +
                          SqlFunctions.StringConvert(
                              (double) SqlFunctions.DateDiff("ss", st.Accepted, st.Ended)%60)).Length - 2, 2)),
            st.Message

我知道我应该使用viewmodel来获得这个权利,但我被困在Totaltime和Ordertime上,因为它们是在查询中创建的。

我如何把这个自定义Linq查询查看

您可以创建一个新的具体类并执行select new Example,而不是执行select new:

public class Example
{
    public string ID { get; set; }
    public string Filename { get; set; }
}

,你可以使用LINQ获取一个列表,例如:

List<Example> data = (from x in events
                      group x by x.GetMessageFields() into grouping
                      let y = grouping.Select(x => x.GetFilename()).ToList()
                      select new Example
                      {
                          ID = grouping.Key,
                          Filename = y.First()
                      }).ToList();

如果你有一个模型类,你可以添加一个List<Example>到它现在和使用它:

model.ExamplesList = data;