在单个查询中返回相关元素(我的查询不好吗?)

时间:2010-07-27 20:40:06

标签: c# entity-framework entity-relationship

嘿,我有一张叫做与自己有关系的产品的桌子。此表存储产品及其子产品,然后存储子子产品。当用户搜索最顶级的产品时,此查询应返回父级,子级及其子级的子级。现在,我的查询工作,但我是实体框架和SQL的新手,所以我不确定这是否应该这样做。为了让事情变得多毛,我正在搜索表格中的多个字段。

else
            {
                productQuery = 
                    from b in solutionContext.Version
                    where 
                        (
                            b.Product.Name == search || b.Product.Description == search ||
                            b.Product.Product2.Name == search || b.Product.Product2.Description == search ||
                            b.Product.Product2.Product2.Name == search || b.Product.Product2.Product2.Description == search
                        )
                    orderby b.Product.LastNumber ascending
                    select b;
            }

为了澄清,Product2是从孩子到父母的关系。

Subquestion:将来我想搜索一个孩子,返回其父母和父母的父母。我目前正在做的方式是添加一些lambda表达式并做我做的事情,但是建立关系。这很聪明吗?

1 个答案:

答案 0 :(得分:1)

此查询没有任何问题。当然,L2E期望访问相关成员。

考虑使用如下语法:

b.Product.Name.Equals(search, StringComparison.OrdinalIgnoreCase)

搜索通常应该不区分大小写。