title: EF Core could not be translated and will be evaluated locally
body: <p>I have a query in EF Core 1.1.2 that is evaluated on client side and would like to know if there is a better way to translate it into sql?</p>
  
  <p><strong>The query:</strong></p>
  
  <pre><code>from l in _ctx.Locations
    join i in _ctx.Inventories on l.Id equals i.LocationId
    join it in _ctx.Items on i.ItemId equals it.Id
    where l.ProjectId == projectid
    group i by new {l.Id, l.LHA} into il
    select new InventoryLocations() {
        Id= il.Key.Id,
        LHA = il.Key.LHA,
        FlaggedItems = il.Any(x=&gt;x.Item != null &amp;&amp; x.Item.Flagged)
    }
  </code></pre>
  
  <p>If not, what other options do I have?</p>
  
  <ul>
  <li>As I know there's still no way mapping views.</li>
  <li>FromSQL() method can return types already known in the context only and I can not mark one model as [NotMapped] for example.</li>
  <li>Moving back to ef6 is not an option because .net core is the target framework.</li>
  </ul>
  
  <p><strong>Models:</strong></p>
  
  <pre><code>public class Location
  {
      public Guid Id { get; set; }
  
      [ForeignKey("Project")]
      public Guid ProjectId { get; set; }
      public Project Project {get; set; }
      public string Name { get; set; }
      public string LHA { get; set; }
  
      [ForeignKey("ScanUser")]
      public Guid? ScanUserId { get; set; }
      public User ScanUser { get; set; }
      [ForeignKey("CheckUser")]
      public Guid? CheckUserId { get; set; }
      public User CheckUser { get; set; }
  
      [ForeignKey("GroupLeader")]
      public Guid? GroupLeaderId { get; set; }
      public User GroupLeader { get; set; }
      public int State { get; set; }
  }
  
  public class Inventory
  {
      public Guid Id { get; set; }
  
      [ForeignKey("Project")]
      public Guid ProjectId { get; set; }
      public Project Project {get; set; }
      public string EANCode { get; set; }
      [ForeignKey("Location")]
      public Guid LocationId { get; set; }
      public Location Location { get; set; }
      public Double ScanQty { get; set; }
      [ForeignKey("ScanUser")]
      public Guid? ScanUserId { get; set; }
      public User ScanUser { get; set; }
      public DateTime? ScanDate { get; set; }
      [ForeignKey("Item")]
      public Guid? ItemId { get; set; }
      public Item Item { get; set; }
  
      [ForeignKey("InventoryTask")]
      public Guid? InventoryTaskId { get; set; }
      public InventoryTask InventoryTask { get; set; }
  
      [ForeignKey("CheckUser")]
      public Guid? CheckUserId { get; set; }
      public User CheckUser { get; set; }
      public DateTime? CheckDate { get; set; }
      public Double PrevQty { get; set; }
  }
  
  public class Item
  {
      public Guid Id { get; set; }
      [ForeignKey("Project")]
      public Guid ProjectId { get; set; }
      public Project Project {get; set; }
      public string ItemNo { get; set; }
      public string EANCode { get; set; }
      public string Name { get; set; }
      public Double Price { get; set; }
      public bool Deleted { get; set; }
      public DateTime ChangeTime { get; set; }
  
      public Double BaseQty { get; set; }
      public bool Flagged { get; set; }
  }
  </code></pre>