Причина, по которой вы видите больше строк в синтаксисе запроса, заключается в том, что там вы выполняете соединения, в то время как метод, который выполняется, включает, который просто загружает связанные сущности (проверьте this ).
Если вам действительно нужно объединить его с запросом, вы можете сделать что-то вроде этого:
(from property in db.Property
select property)
.Include(pm => pm.PropertyParty)
.Include(pm => pm.PropertyParty)
.ThenInclude(x => x.Party)
.ThenInclude(x => x.PartyMailingAddress)
.ThenInclude(x => x.PropertyMailingAddress)
.ToList();
Если вы ищете group by
, потому что хотите придерживаться синтаксис запроса, это будет примерно так (но мне кажется, что вся эта работа того не стоит)
var testingResult = (from property in db.Property
join propertyParty in db.PropertyParty
on property.PropertyId equals propertyParty.PropertyId
join party in db.Party
on propertyParty.PartyId equals party.PartyId
join partyMailingAddress in db.PartyMailingAddress
on party.PartyId equals partyMailingAddress.PartyId
join propertyMailingAddress in db.PropertyMailingAddress
on partyMailingAddress.PartyMailingAddressId equals propertyMailingAddress.PartyMailingAddressId
group property by new { property.Field1, x.Field2, ... /* Group by all the property fields */ } into grouped
select new Property
{
Field1 = grouped.Key.Field1,
Field2 = grouped.Key.Field2,
... /* Manually populate all the properties */
PropertyParties = grouped.Select(x => x.PropertyParties),
... /* Manually populate all the related entities */
}).ToList();