Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用linq编译的查询返回列表_C#_Linq_Linq.compiledquery - Fatal编程技术网

C# 使用linq编译的查询返回列表

C# 使用linq编译的查询返回列表,c#,linq,linq.compiledquery,C#,Linq,Linq.compiledquery,我正在根据教程创建一个编译后的LINQtoSQL查询,并试图找出如何将结果作为列表返回,以便在代码中使用结果。目前它是默认的IEnumerable,我得到的错误是不能枚举两次 public static Func<OoplesDBDataContext, string, IEnumerable<string>> GetValidSymbols { get { Func<OoplesDBDataConte

我正在根据教程创建一个编译后的LINQtoSQL查询,并试图找出如何将结果作为列表返回,以便在代码中使用结果。目前它是默认的IEnumerable,我得到的错误是不能枚举两次

public static Func<OoplesDBDataContext, string, IEnumerable<string>> GetValidSymbols
    {
        get
        {
            Func<OoplesDBDataContext, string, IEnumerable<string>> func =
                CompiledQuery.Compile<OoplesDBDataContext, string, IEnumerable<string>>
                ((OoplesDBDataContext context, string market) =>
                from c in context.Symbols
                where c.Market == market && c.isActive == true && c.isUnderReview == false
                select c.Symbol1);
            return func;
        }
    }

public static List<string> getStockSymbols(string market)
    {
        List<string> symbolList = new List<string>();

        try
        {
            using (OoplesDBDataContext context = new OoplesDBDataContext())
            {
                context.ObjectTrackingEnabled = false;
                var query = QueriesUtility.GetValidSymbols(context, market);

                return query.ToList(); // breaks here with the error
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

        return null;
    }

有关错误的详细信息?您需要更新代码,在您的代码中GetValidSymbols返回一个委托人,然后根据问题和错误的详细描述,在委托人处调用ToList。我只能说,您需要修复错误。很抱歉,我不得不离开一会儿。我对这个问题感到非常困惑,因为前三次我犯了一个错误,即无法枚举两次,但之后在没有任何更改的情况下,它突然开始工作。在运行VisualStudio时,我也遇到了奇怪的致命异常,所以我相信它与此相关