多对多关系查询

时间:2013-10-16 16:30:00

标签: entity-framework

我有以下查询:

var users_t = context.Users.Select(x => 
  new {
    Username = x.Username,
    Roles = x.Roles.Select(y => y.Id).ToList()
  }
);

但是我收到以下错误:

LINQ to Entities无法识别方法'System.Collections.Generic.List 1[System.Int32] ToList[Int32](System.Collections.Generic.IEnumerable 1 [System.Int32])'方法,并且此方法无法转换为商店表达式。

这可以解决吗?也许使用SelectMany?

有人可以帮助我吗?

谢谢你,Miguel

1 个答案:

答案 0 :(得分:0)

LINQ to Entities应该能够将表达式转换为SQL,并且.ToList()没有SQL函数。请尝试删除.ToList()

var users_t = context.Users.Select(x => 
  new {
    Username = x.Username,
    Roles = x.Roles.Select(y => y.Id)
  }
);