Linq to sql Linq到sql查询的帮助

Linq to sql Linq到sql查询的帮助,linq-to-sql,Linq To Sql,在下面的代码中,value是一个字符串,其中包含逗号分隔的值,每个值都是一个类型名。我想得到与这些类型中的任何一个链接的实体,或者在它们的描述中有一个这样的类型。我已经将以下linq编写到sql Server,当存在具有这些类型的实体时,我总是得到0。你能帮忙吗 string[] allValues = value.Split(','); var allTypes = ModelFactory.GetRepository<IRestaurantTypeRepository>().G

在下面的代码中,value是一个字符串,其中包含逗号分隔的值,每个值都是一个类型名。我想得到与这些类型中的任何一个链接的实体,或者在它们的描述中有一个这样的类型。我已经将以下linq编写到sql Server,当存在具有这些类型的实体时,我总是得到0。你能帮忙吗

string[] allValues = value.Split(',');

var allTypes = ModelFactory.GetRepository<IRestaurantTypeRepository>().GetAllTypes();

return from ent in matchingEntities
       from typeLink in ent.EntityRestaurantTypeLinks
       join type in allTypes on typeLink.RestaurantTypeId equals type.RestaurantTypeId
       where allValues.Contains(typeLink.RestaurantType.TypeName)
       || (
            allValues.Contains(type.TypeName)
            && ent.Description.Contains(type.TypeName)
           )
       select ent;

在这种情况下,allValues是string[]类型。说明是字符串内容。我只想从allValues中获取其描述包含任何值的实体。上述陈述没有给出结果。

根据您对问题的描述,听起来您的意思是
,而不是

return from ent in matchingEntities
       from typeLink in ent.EntityRestaurantTypeLinks
       join type in allTypes on typeLink.RestaurantTypeId equals type.RestaurantTypeId
       where allValues.Contains(typeLink.RestaurantType.TypeName)
           || allValues.Contains(type.TypeName)
           || ent.Description.Contains(type.TypeName)
       select ent;

否则,您现在的查询将返回“与这些类型中的任何一种链接的所有实体,或者(是这些类型中的一种,并且在其描述中有这些类型之一)”

从您对问题的描述中,听起来您的意思是
,而不是

return from ent in matchingEntities
       from typeLink in ent.EntityRestaurantTypeLinks
       join type in allTypes on typeLink.RestaurantTypeId equals type.RestaurantTypeId
       where allValues.Contains(typeLink.RestaurantType.TypeName)
           || allValues.Contains(type.TypeName)
           || ent.Description.Contains(type.TypeName)
       select ent;

否则,您现在的查询将返回“所有与这些类型中的任何一种链接的实体,或者(是这些类型中的一种,并且在它们的描述中有一种类型)”

@lc,我已经尝试了您的解决方案,但仍然得到0个结果。@mohang,那么您是否遇到了区分大小写的问题?我明白了,它应该可以工作。另外,您已经在运行时检查了
所有值
,如果您不使用where子句进行筛选,则返回的实体正常?@lc,我已经尝试了您的解决方案,但仍然得到0个结果。@mohang,您是否遇到了区分大小写的问题?我看到了,它应该可以工作。另外,您已经在运行时检查了
allValues
,如果不使用where子句进行筛选,则返回的实体是否正常?