在不增加特定字段的情况下从数据库呈现数据

时间:2015-05-25 12:08:08

标签: c# asp.net sql-server asp.net-mvc

我在数据库中有这样的东西: enter image description here

我希望像这样显示:

  

date1 worktime UserName1
  date2工作时间
  date3工作时间
  date1 worktime UserName2
  date2工作时间
  date3工作时间

我已经开了一个Model

[Table("Work_Hours")]
public class User
{
    public string UserID { get; set; }
    public string UserName { get; set; }
    public TimeSpan WorkTime { get; set; }
    public DateTime Date { get; set; }
}

public class UserDBContext : DbContext
{
    public DbSet<User> Users { get; set; }
}

并试图用ViewModel来解决我的问题:

public class UserViewModel
{
    public string UserID { get; set; }
    public string UserName { get; set; }
    public LinkedList<TimeSpan> WorkTime { get ; set;}
    public LinkedList<DateTime> Date { get; set; }
}

但我不知道如何将WorkTimeDate的一个对象和列表添加到UserName列表中的一个特定models的新视图模型列表中。

1 个答案:

答案 0 :(得分:0)

Linq已经内置了这个。鉴于:

IEnumerable<User> data=...; // input from somewhere

你可以这样做:

var groups=data.GroupBy(w=>w.UserName); // type is IGrouping<string, User>

枚举此对象将为您提供一个Key属性,即每个项目的用户名,然后再次枚举此返回对象将为您提供具有指定用户名的每个项目。