开发者

Any way to make this more efficient? It runs fast just would like improvements if available

Any way to make this more efficient?

internal Func<enntities, IQueryable<CategoryList>> GetCategoryListWithPostingCount =
        CompiledQuery.Compile((entities entities) => 
            from c in entities.Categories.Include("Postings_Categories")
            where c.ParentCategoryID == null
            orderby c.DisplayOrder开发者_Python百科
            select new CategoryList
            {
                ParentCategoryName = c.CategoryName,
                ParentCategoryID = c.CategoryID,
                SubCategories = (
                from s in entities.Categories
                where s.ParentCategoryID == c.CategoryID
                select new SubCategoryList
                {
                    PostingCount = s.Postings_Categories.Count,
                    SubCategoryName = s.CategoryName,
                    SubCategoryID = s.CategoryID
                })
            });


Any suggestions for improvement would depend on us knowing a lot more than just the LINQ query. For example, if you have a lot of SubCategoryLists per Category, and if Category has a lot of scalar data attached to it (big description text, etc), it might be faster to pull the category list in a separate database round-trip. But it probably won't.

Looking at what tables are joined and adding the appropriate indices could make a difference, too.

But all in all, I'd say this is a case of premature optimization. The code looks clean, and I can tell what you're trying to do with it, so call that good for now. If you find that it's a slow point in your program, worry about it then.

PS--The question is tagged LINQ-to-SQL, but this looks like LINQ-to-Entities to me...

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜