Linq to sql 如何使用LINQ从函数返回值

Linq to sql 如何使用LINQ从函数返回值,linq-to-sql,Linq To Sql,下面是我无法计算返回类型的代码示例,此函数属于clsExhibitorlist类。我想将其绑定到我的gridview 公众???GetExhibitorList() { using (DataClasses1DataContext context = new DataClasses1DataContext()) { var Exhibitors = from c in context.Companies

下面是我无法计算返回类型的代码示例,此函数属于clsExhibitorlist类。我想将其绑定到我的gridview

公众???GetExhibitorList() {

        using (DataClasses1DataContext context = new DataClasses1DataContext())
        {

            var Exhibitors = from c in context.Companies
                             join b in context.Booths on c.CoID equals b.CoID
                             join bc in context.BoothCategories
                             on b.BoothID equals bc.BoothID
                             join sp in context.SubProductCategories
                             on bc.SubProdCatID equals sp.SubProdCatID
                             join p in context.ProductCategories on
                             sp.ProdCatID equals p.ProdCatID
                             orderby c.CoID
                             select new clsExhibitorList { c.CoID, c.CompanyName,   b.FPCoName,p.ProdCatID,sp.SubProdCatID};



            if (Keyword != "")
            {
                Exhibitors = Exhibitors.Where(c => c.CompanyName.Contains(Keyword));
            }
            if (ProdCatID != "")
            {
                Exhibitors = Exhibitors.Where(c => c.ProdCatID.Equals(ProdCatID.Split(',')));
            }
            if (SubProdCatID != "")
            {
                Exhibitors = Exhibitors.Where(c => c.SubProdCatID.Equals(SubProdCatID.Split(',')));
            }
            return Exhibitors;
        }
    }

啊,我在代码中没有看到任何实际调用查询的内容。因此,该方法返回一个表示查询的表达式树

如果在return语句中添加类似.ToList()的内容,则将强制计算查询,然后返回类型将为

列表

你可以在这篇博文中找到关于这里发生了什么(延迟评估)的解释:

请注意,我不相信您可以绑定到表达式树,因为您必须添加.ToList或.ToArray或.ToDictionary或类似内容,添加它的最佳位置是在return语句中,以便在数据库中进行尽可能多的处理