Как указать условие where для данных, возвращаемых из .Include в запросе Entity Framework? - PullRequest
1 голос
/ 17 декабря 2008

Учитывая следующую иерархию таблиц базы данных:

Region
------
RegionId
RegionName

Country
-------
CountryId
RegionId
CountryName

Destination
-----------
DestinationId
CountryId
DestinationName

Venue
-----
VenueId
DestinationId
VenueName

У меня следующий запрос Entity Framework:

var result = from region in context.Region.Include("Country.Destination.Venue") 
select region

, который вернет все строки из всех таблиц (внешнее объединение)

Можно ли ввести предложение where, чтобы включались только строки, в которых место проведения не равно нулю (или используется внутреннее соединение)?

Спасибо

1 Ответ

1 голос
/ 17 декабря 2008

Попробуй это. Он должен вернуть результаты, которые вы ищете: только те регионы, которые имеют соответствующее место.

    var result = from region in context.Region.Include(Country.Destination.Venue)
                 let v = (from ctry in region.Country
                         join dest in context.Destination
                         on ctry.CountryId
                         equals dest.CountryId
                         into destGroup
                         from dests in destGroup
                         join ven in context.Venue
                         on dests.DestinationId
                         equals ven.DestinationId
                         into venGroup
                         select ctry).Any()
                 where v == true
                 select region;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...