实体框架中的异步查询

问题描述 投票:-1回答:1

我在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);
}

此外,我想执行内部联接查询,但我不知道该怎么做。

有人可以帮我吗?

谢谢

c# .net entity-framework
1个回答
2
投票

如下使用:

var test = await db.Tests.Where(r => r.AircraftId == id).ToListAsync();

对于内部联接,两个表之间将存在外键关系。然后您可以使用以下查询:

var test = await db.Aircraft.Include(x=>x.Tests).ToListAsync();

如果要在其中过滤记录,则可以应用.Where条件。

© www.soinside.com 2019 - 2024. All rights reserved.