1

我正在尝试使用 mac 地址对设备列表进行分组。我已经在 linqpad 中尝试过,它成功运行。但是,当我尝试在实体框架中运行它时,我收到一条错误消息“不支持指定的方法”。

这是我的代码:

var db = new centraliteEntitiews();

var network = from n in db.infoes
              where (n.state != 2) || (n.nodeid != 0)
              orderby n.time
              group n by n.mac into g
              select g.FirstOrDefault();
return View(network);

我希望它返回要发送到我的视图的对象列表。

MacAddress 状态 nodeid 正常运行时间等

4

2 回答 2

1

尝试这个...

var network = db.infoes
  .Where(n => (n.state != 2) || (n.nodeid != 0))
  .GroupBy(n => n.mac)
  .SelectMany(g => g.OrderBy(n => n.time).First()) // sort within groups instead of all inputs, select info ungrouped (1 from each)
  .ToList() // to memory
  .SortBy(n => n.time) // sort results (between groups)
  .ToList(); // to memory
于 2012-06-26T16:43:39.027 回答
0

假设它FirstOrDefault()不受支持,您可以尝试将其更改为First(). 毕竟,您知道每个组中至少有一个元素,否则该组将不存在。

于 2012-06-26T16:22:21.590 回答