gpt4 book ai didi

c# - Entity Framework 核心 (7) : load single entity by id

转载 作者:太空狗 更新时间:2023-10-30 01:16:15 25 4
gpt4 key购买 nike

.ToListAsync 用于从 EF Core 中的数据库获取项目集合。这很清楚。但是单品的正确获取方式是什么呢?如果可能,以异步方式。

public async static Task<Source> LoadEntityAsync(int sourceID)
{
using (var db = new RPDBContext())
{
var sources =
await
db.Source
.Where(x => x.SourceID == sourceID)
.ToListAsync();
// TODO that's like a hack:
return sources.First();
}
}

最佳答案

如果您希望对象是唯一的,您应该使用 SingleOrDefaultAsync。如果您知道对象在域限制中是唯一的,或者如果您通过主键访问它,那么您可以使用 FirstOrDefaultAsync

var sources = await db.Source
.Where(x => x.SourceID == sourceID)
.SingleOrDefaultAsync();

您可以使用另一个重载并缩短查询

var sources = await db.Source
.SingleOrDefaultAsync(x => x.SourceID == sourceID);

同样的规则适用于 FirstOrDefaultAsync

如果要确保对象存在,只需删除 OrDefault 部分并使用 SingleAsyncFirstAsync

关于c# - Entity Framework 核心 (7) : load single entity by id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35815557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com