使用IEnumerable字段展平匿名IQueryable

时间:2017-03-07 19:15:08

标签: c# entity-framework linq lambda

假设我有三个表,Table1是主表,与Table2和Table3有一对多的关系。

我有一个从查询到数据库创建的匿名类型:

if __name__ == "__main__":

然后我将这样的名字列表扁平化:

var query = context.Table1.Select(x => new 
{
    x.id, 
    dates = x.table2.Select(y => y.date),
    names = x.table3.Select(z => z.name))
});

然后我希望将IEnumerable的日期与其余数据展平,但为每个日期创建一个新行,如下所示:

var dataset = query.AsQueryable().Select(x => new
{
    x.id,
    x.dates,
    names = string.Join(", ", x.names)
}).ToList();

有没有一种快捷的方式来实现这一目标,还是必须采用id | dates | names 1 | 01/17/2017 | John 1 | 01/18/2017 | John 2 | 01/17/2017 | John, Peter 3 | 01/18/2017 | Peter, Paul 3 | 01/19/2017 | Peter, Paul 3 | 01/20/2017 | Peter, Paul 4 | 01/17/2017 | Peter 5 | 01/18/2017 | Paul 5 | 01/20/2017 | Paul 周期?

0 个答案:

没有答案