我在数据库中有这样的东西:
我希望像这样显示:
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; }
}
但我不知道如何将WorkTime
和Date
的一个对象和列表添加到UserName
列表中的一个特定models
的新视图模型列表中。
答案 0 :(得分:0)
Linq已经内置了这个。鉴于:
IEnumerable<User> data=...; // input from somewhere
你可以这样做:
var groups=data.GroupBy(w=>w.UserName); // type is IGrouping<string, User>
枚举此对象将为您提供一个Key
属性,即每个项目的用户名,然后再次枚举此返回对象将为您提供具有指定用户名的每个项目。