0

下面返回建筑物中的所有人以及他们所有的计算机,这很有效。

我想将其更改为仅包括 Active == 1 的计算机和仅 ActivityTypeId == 5 的 ActivityLogs。但如果它们都没有,我仍然希望该人返回。

  public IQueryable<Person> GetPeople(int BuildingId)
        {
         return this.ObjectContext.People
                .Include("Computers")
                .Include("ActivityLog")
                .Where(p => p.buildingId == BuildingId && !p.migrated)
                .OrderBy(p => p.name);
         }
4

1 回答 1

0

Include不幸的是,使用语法这是不可能的。作为替代方案,您可以像这样单独选择每个实体:

var queryWithAllData = this.ObjectContext
                           .People
                           .Select(p => new
                           {
                               Person = p,
                               Computers = p.Computers.Where(c => c.Active == 1),
                               ActivityLogs = p.ActivityLog.Where(a => a.ActivityTypeId == 5)
                           });

// Do what you need with the records now that you have all the data.
于 2013-10-18T20:00:23.513 回答