2016-09-07 134 views
1

我是Linq的新手,可以使用一些帮助。 我想设置一个自定义Linq查询到MVC视图,但我真的不知道如何?我怎样才能把这个自定义Linq查询查看?

这里是我的ActionResult

在db.Stats

代码从ST
 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 

我知道,我应该使用视图模型得到这个权利,但我被困在TOTALTIME和Ordertime自它们是在查询中创建的。

+0

“但我卡住了”:你怎么卡住了?它在做什么?你想要它做什么? – krillgar

+0

这是两个时间栏,并在他们之间的时间在一个新的列。无论是全时还是全日制。 – m3k1

回答

1

而不是做select new,你可以创建一个新的具体类,做select new Example:如果你有

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

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

,您可以使用LINQ来获取的,例如列表一个模型类,您现在可以添加一个List<Example>并使用它:

model.ExamplesList = data; 
相关问题