在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-我如何才能理所当然地将内容插入***签名的行中?!
提前感谢
为了快速解决您的问题,您可以
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);