c# - 实例化空 IQueryable 以与 Linq to sql 一起使用

标签 c# asp.net-mvc linq linq-to-sql iqueryable

我需要能够在 Linq 查询中拥有一个可选参数,或者如果需要从查询中删除该可选参数,则能够将查询分配给类似 IF 的 var。

如果我在 IF 语句中设置查询变量,那么当我尝试循环遍历它时,它会告诉我该变量在上下文中不存在。

if (whichGroup == "All")
{
    var listOppLineData = (from o in db.opportunity_vws
                           where o.fiscal_yr_and_qtr == qtr
                           select o
                          );
}
else
{
    var listOppLineData = (from o in db.opportunity_vws
                           where o.fiscal_yr_and_qtr == qtr && o.Group == whichGroup
                           select o
                          );
}
            
foreach (var data in listOppLineData)  //listOppLineData doesn't exist here
{
 ...

我认为我需要在 IF 语句之前设置 var,但我不知道将其设置为什么。

var listOppLineData = ""; // gives me 
Cannot implicitly convert type 'System.Linq.IQueryable<Forecast.Models.opportunity_vw>' to 'string'

IQueryable listOppLineData = new IQueryable(); //gives me
        Cannot create an instance of the abstract class or interface 'System.Linq.IQueryable'

最佳答案

试试这个。您可以使用 T 创建通用类型,或者通过将 T 替换为您的类型名称来创建特定类型。

IQueryable listOppLineData = Enumerable.Empty<T>().AsQueryable()

关于c# - 实例化空 IQueryable 以与 Linq to sql 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14993048/

相关文章:

c# - LINQ where或过滤C#

c# - Mongodb 数组元素匹配

C# 创建和使用函数

asp.net-mvc - 如何在AuthorizeAttribute中设置viewbag?

c# - 以用户别名发送消息

c# - 如何在C#中将Linq Select Enumerable转换为首选类型?

c# - 使用 LINQ 搜索树

c# - 关于锁性能/使用的 2 个问题

asp.net-mvc - 自托管 asp.net mvc

c# - 无法使用 LINQ Where 将 MySQL 日期/时间值转换为 System.DateTime?