Помогите с Linq to sql запросом - PullRequest
1 голос
/ 23 июня 2010

В следующем коде значение представляет собой строку со значениями, разделенными запятыми, каждое из которых является именем типа. Я хочу получить сущности, которые были связаны с любым из этих типов или имеют один из этих типов в своем описании. Я написал следующее linq to sql servery, и я всегда получаю 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;

EDIT

Я разделил заявление на две части. После этого второе утверждение стало таким.

from ent in matchingEntities
                       where allValues.AsEnumerable().Any(va =>    
                       ent.Description.Contains(va))
                       select ent;

В этом allValues ​​тип string []. ent.Description - содержимое строки. Я просто хочу получить сущности, описание которых содержит любое значение из allValues. Вышеприведенное утверждение не дает результатов.

1 Ответ

1 голос
/ 23 июня 2010

Из вашего описания проблемы это звучит так, как будто вы имеете в виду or вместо and:

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;

В противном случае ваш запрос теперь возвращает "все объекты, которые были связанылюбой из этих типов или (является одним из этих типов и имеет один из этих типов в своем описании) "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...