mvc c#合并两个以上的查询结果

编程入门 行业动态 更新时间:2024-10-23 04:40:39
本文介绍了mvc c#合并两个以上的查询结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有几个具有相同结果结构的通用查询,我试图将它们合并到一个变量中,以便可以将它们传递给视图.

I have several generic queries that has the same structure of results and I'm trying to combine them in one variable so that I can pass them to the view.

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,但它给出了以下错误.

I cannot combine the two query results, I tried using Concat or Union but it gives the error below.

'ViewModel'不包含'Concat'的定义,也找不到扩展方法'Concat'接受类型为'ViewModel'的第一个参数(您是否缺少using指令或程序集引用?)

'ViewModel' does not contain a definition for 'Concat' and no extension method 'Concat' accepting a first argument of type 'ViewModel' could be found (are you missing a using directive or an assembly reference?)

谢谢!

推荐答案

如果将 var 关键字替换为实际类型,则会发现您拥有以下内容:

If you were to replace the var keyword with the actual types you'd see that you have this:

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> .

In order to do a .Concat(...) it should be IQueryable<ViewModel> or IEnumerable<ViewModel>.

这是导致您感到悲伤的 .LastOrDefault()调用.

It's the .LastOrDefault() call that is causing you grief.

尝试一下:

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();

更多推荐

mvc c#合并两个以上的查询结果

本文发布于:2023-10-24 17:12:46,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1524521.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:查询结果   两个   mvc

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!