我正在将表分组后发送数据,并使用视图包将其传递给View,并希望显示数据
我可以将数据从Controller传递到View,但是由于List也包含List,这对我来说也有些混乱
控制器
var data = (from e in `dc.tb`l
group e by e.a into g
select new
{
Name = g.Key,
`Task``Name` = g.Select(x => x.'task').To'List'(),
Task_Assignee = g.Select(x =>x.Name).To'List'(),
Task_Assigned_Date = g.Select(x =>x.U_Date).To'List'(),
Task_Completed_Date = g.Select(x => x.date).To'List'(),
Remarks_From_Assignee = g.Select(x => x.U_Remarks).To'List'(),
Remarks_From_Assigner = g.Select(x =>x.'rem').To'List'(),
Points_Given = g.Select(x=>x.Points).To'List'(),
}).To'List'();
如何在表中显示与用户名有关的分组数据
答案 0 :(得分:0)
那是一个可怕的主意。您不能只绕过匿名对象并保持所有类型的安全,这也不是主意。考虑到这么多内部查询,这也是一个糟糕的查询。
在这里,您应该使用以下通用模式和命名约定:
public class TaskGroup
{
public string Key { get; set; }
public Lists<TaskViewModel> Tasks { get; set; }
}
public class TaskViewModel
{
public string Name { get; set; }
public string Assignee { get; set; }
// rest of the properties
}
您可以通过以下方式使用它:
List<TaskGroup> data = context.TableName
.GroupBy(x => x.GroupingProperty)
.Select(grp => new TaskGroup
{
Key = grp.Key,
Tasks = grp.Select(task => new TaskViewModel
{
Name = task.Task,
Assignee = task.Name,
// etc
})
.ToList()
})
.ToList();