0

我正在根据此处的教程创建一个已编译的 linq to sql 查询,并试图弄清楚如何将结果作为列表返回,以便我可以在我的代码中使用这些结果。目前它是默认的 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;
    }
4

0 回答 0