实体框架嵌套查询

时间:2020-06-30 12:56:54

标签: entity-framework linq

我是LINQ的新手,我想编写最简单的嵌套查询。

我有两个对象列表:客户和订单。

public class Client
{
   public int Id { get; set; }
   public int Name{ get; set; }
}

public class Order
{
   public int Id { get; set; }
   public int ClientId{ get; set; }
   public Client Client{ get; set; }
   public DateTime DateOfOrder{ get; set; }
}

我希望得到最近6个月内有订单的客户。 在SQL中为:

SELECT * FROM CLIENTS WHERE ClientId IN 
(SELECT ClientId FROM ORDERS WHERE DateOfOrder>'2020-01-01')

我假设我需要使用“包含”,但是我不知道如何返回ClientId列表而不是订单列表。

var clients=db.Clients.Where(c=>db.Orders.Where(a=>a.DateOfOrder>DateTime.Now.AddDays(-183).ToList().Contains(c.ClientId)).ToList();

1 个答案:

答案 0 :(得分:0)

删除<button class="accordion">NUMBER OF RIDES PER JOCKEY (EXCLUDING SCRATCHINGS)</button> <div class="panel5"> <div class="row"> <div class="column"> <a class="hoverHereToPopUp" data-hover-content="<div class='hoverPopUp'> <table class='center'> <tr> <th>RACECOURSE</th> <th>RACE NO.</th> <th>RUNNER</th> <th>TRAINER</th> <th>TD RATING</th> </tr> <tr> <td>SANDOWN-HILLSIDE</td> <td>RACE 1</td> <td>ROCK AROUND THE CLOCK - ONE (8)</td> <td>DAVID & BEN HAYES & TOM DABERNIG</td> <td> <center>AA</center> </td> </tr> <tr> <td>SANDOWN-HILLSIDE</td> <td>RACE 2</td> <td>PURE FUEGO - ONE(1)</td> <td>CAMERON CROCKETT</td> <td> <center> <font color='green'><b>AAA</b></font> </center> </td> </tr> <tr> <td>SANDOWN-HILLSIDE</td> <td>RACE 3</td> <td>ENTREAT - ONE (8)</td> <td>CAMERON CROCKETT</td> <td> <center>AA</center> </td> </tr> </table> </div>">click here </a> <div class="parentDiv"> <a href="#" class="hoverHereToPopUp" >JAMES INNES JR. HAS 1 RIDE.</a> </div> <div class="parentDiv"> <a href="#" class="ShowJockey hoverHereToPopUp">KERRIN MCEVOY HAS 6 RIDES.</a> </div> <div class="parentDiv"> <a href="#" class="ShowJockey hoverHereToPopUp">SAM CLIPPERTON HAS 1 RIDE.</a> </div> </div> <div class="column"> <a class="hoverHereToPopUp">ANDREW ADKINS HAS 1 RIDE.</a><div class="parentDiv"> <a href="#" class="ShowJockey hoverHereToPopUp" data-hover-content="<div class='hoverPopUp'> <table class='center'> <tr> <th>RACECOURSE</th> <th>RACE NO.</th> <th>RUNNER</th> <th>TRAINER</th> <th>TD RATING</th> </tr> <tr> <td>SANDOWN-HILLSIDE</td> <td>RACE 1</td> <td>ROCK AROUND THE CLOCK - ONE (8)</td> <td>DAVID & BEN HAYES & TOM DABERNIG</td> <td> <center>AA</center> </td> </tr> <tr> <td>SANDOWN-HILLSIDE</td> <td>RACE 2</td> <td>PURE FUEGO - ONE(1)</td> <td>CAMERON CROCKETT</td> <td> <center> <font color='green'><b>AAA</b></font> </center> </td> </tr> <tr> <td>SANDOWN-HILLSIDE</td> <td>RACE 3</td> <td>ENTREAT - ONE (8)</td> <td>CAMERON CROCKETT</td> <td> <center>AA</center> </td> </tr> </table> </div>">click here</a> </div> <div class="parentDiv"> <a href="#" class="ShowJockey">NASH RAWILLER HAS 1 RIDE.</a> </div> <div class="parentDiv"> <a href="#" class="ShowJockey">TIM CLARK HAS 2 RIDES.</a> </div> </div> <div class="column"> <a class="hoverHereToPopUp">BRENTON AVDULLA HAS 2 RIDES.</a> <div class="parentDiv"> <a href="#" class="ShowJockey">JASON COLLETT HAS 3 RIDES.</a> </div> <div class="parentDiv"> <a href="#" class="ShowJockey">RACHEL KING HAS 2 RIDES.</a> </div> <div class="parentDiv"> <a href="#" class="ShowJockey">TOMMY BERRY HAS 3 RIDES.</a> </div> </div> <div class="column"> <a class="hoverHereToPopUp">GLEN BOSS HAS 2 RIDES.</a> <div class="parentDiv"> <a href="#" class="ShowJockey">JEAN VAN OVERMEIRE (APPRENTICE) HAS 3 RIDES.</a> </div> <div class="parentDiv"> <a href="#" class="ShowJockey">ROBBIE DOLAN HAS 4 RIDES.</a> </div> <div class="parentDiv"> </div> </div> </div> </div>并在内部查询中使用ToList。像这样:

Select