我有几个具有相同结果结构的通用查询,我试图将它们组合在一个变量中,以便我可以将它们传递给视图。
var query1 = db1.table.Where(a => a.ID == filter1).Select(x=> new ViewModel { //columns}).LastOrDefault();
var query2 = db1.table.Where(a => a.ID == filter2).Select(x=> new ViewModel { //columns}).LastOrDefault();
var query3 = db1.table.Where(a => a.ID == filter3).Select(x=> new ViewModel { //columns}).LastOrDefault();
var combi = query1.Concat(query2);
我无法合并两个查询结果,我尝试使用Concat或Union,但它给出了以下错误。
'视图模型'不包含' Concat'的定义没有扩展方法' Concat'接受第一个类型' ViewModel'可以找到(你错过了使用指令或程序集引用吗?)
谢谢!
答案 0 :(得分:3)
如果您要将var
关键字替换为实际类型,您会发现自己拥有以下内容:
ViewModel query1 = db1.table.Where(a => a.ID == filter1).Select(x => new ViewModel { /* columns */ }).LastOrDefault();
ViewModel query2 = db1.table.Where(a => a.ID == filter2).Select(x=> new ViewModel { /* columns */ }).LastOrDefault();
ViewModel query3 = db1.table.Where(a => a.ID == filter3).Select(x=> new ViewModel { /* columns */ }).LastOrDefault();
要.Concat(...)
IQueryable<ViewModel>
,IEnumerable<ViewModel>
或.LastOrDefault()
。
导致你悲伤的IQueryable<ViewModel> query1 = db1.table.Where(a => a.ID == filter1).Select(x => new ViewModel { /* columns */ });
IQueryable<ViewModel> query2 = db1.table.Where(a => a.ID == filter2).Select(x=> new ViewModel { /* columns */ });
IQueryable<ViewModel> query3 = db1.table.Where(a => a.ID == filter3).Select(x=> new ViewModel { /* columns */ });
var combi = query1.Concat(query2).Concat(query3).LastOrDefault();
电话。
试试这个:
web