在LinQ中将两个局部查询结果组合为一个全局查询变量

本文关键字:组合 变量 全局查询 结果 一个 两个 LinQ 局部 查询 | 更新日期: 2023-09-27 18:19:37

我的C#程序中有一些复选框,每个复选框都对应于数据库驱动表的一列。当用户检查每一个时,程序应该考虑一个查询,对应于该列,并将结果存储在var类型的变量中。最后,所有生成到if块中的本地var类型查询结果都需要组合为一个结果,即GlobalQueryVar,以在网格数据视图中显示。典型复选框的if语句如下所示:

if(IDCheckbox.checked)
    {
        localQuery0 = from MessageID in DB.AVLDATASets
                      select {MessageID, MessageID};
         if(GlobalQueryVar == null)
            *** GlobalQueryVar == localQuery0; // aren't the same type... How to cast
         else
           ****  GlobalQueryVar == GlobalQueryVar.concat(localQuery0); // apparently, doesn't work...
    }        

最后,所有的本地查询都应该一个接一个地附加到全局变量GlobalQueryVar,然后,我将使用.toArray()方法来处理GlobalQueryVar,并将结果发送到gridview。

现在,我有3个问题要处理这个案子:1-我的GlobalQueryVar应该考虑哪种类型?!。。。IEnumerable或IQueryable或。。。?!

2-由*签署的生产线所需的铸造方案是什么?!

3-我如何才能理所当然地将内容插入***签名的行中?!

提前感谢

在LinQ中将两个局部查询结果组合为一个全局查询变量

为了快速解决您的问题,您可以

1) 为等数据创建类

public class MessageData{
    public string Message {get;set;}
    public int MessageID {get;set;}
}

2) 像一样声明全局var

IQueryable<MessageData> GlobalQueryVar;

3) 像一样更改查询

localQuery0 = from msg in DB.AVLDATASets
              select new MessageData{ Message = msg.Message, MessageID = msg.MessageID};

之后的下一个代码应该工作

if(GlobalQueryVar == null)
    GlobalQueryVar == localQuery0;
else
    GlobalQueryVar == GlobalQueryVar.concat(localQuery0);