我正在尝试使用mac地址对设备列表进行分组。我在linqpad中尝试了这个,它运行成功。但是,当我尝试在Entity框架中运行它时,我收到一条错误消息“不支持指定的方法。”
这是我的代码:
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正常运行时间等
答案 0 :(得分: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
答案 1 :(得分:0)
假设它FirstOrDefault()
不受支持,您可以尝试将其更改为First()
。毕竟,你知道每组中至少有一个元素,否则该组将不存在。