我在C#中,并且以数据库优先的方式使用Entity Framework,并且我希望以异步方式进行与此查询类似的查询:
[Route("api/Tests/get/by/flight/{id}")]
[ResponseType(typeof(Test))]
public IHttpActionResult getByFlightTodayId(int id)
{
var testList = db.Tests.SqlQuery("Select * from Tests where Tests.AircraftId=@id", new SqlParameter("@id", id)).ToList<Test>();
return Ok(testList);
}
我有一个例子,但它只返回一个结果-不返回数组。
[Route("api/Tests/get/by/flight/{id}")]
[ResponseType(typeof(Test))]
public async Task<IHttpActionResult> getByFlightId(int id)
{
Test test = await db.Tests.FirstAsync(r => r.AircraftId == id);
if (test == null)
{
return NotFound();
}
return Ok(test);
}
此外,我想执行内部联接查询,但我不知道该怎么做。
有人可以帮我吗?
谢谢
如下使用:
var test = await db.Tests.Where(r => r.AircraftId == id).ToListAsync();
对于内部联接,两个表之间将存在外键关系。然后您可以使用以下查询:
var test = await db.Aircraft.Include(x=>x.Tests).ToListAsync();
如果要在其中过滤记录,则可以应用.Where
条件。