gpt4 book ai didi

c# - 使用 Entity Framework 选择 DBSet 中的行

转载 作者:太空狗 更新时间:2023-10-29 23:13:49 25 4
gpt4 key购买 nike

我正在尝试获取基于 WHERE 的行DbSet 中的子句目的。我有这个:

dbContext.Workers

我可以得到这样的列表:

workers = m.Workers.Where(w => w.BranchId == curUser.BranchId).ToList<Worker>();

但如您所见,它返回一个 List<Worker>而且我不能使用像 workers.Find(WorkerId) 这样的方法与它。

基本上,我试图返回一个 DBSet基于一些过滤器我的意思是我想在 DBSet 类上使用 LINQ。我想要这个是因为我需要使用 workers.Find(WorkerId)也许我需要更新这个模型。因此,我将根据 where 子句获得一个列表,我将更改一些值并使用 dbContext.SaveChanges() .这可能吗?

谢谢

最佳答案

Where(...) 返回一个 IQueryable,您可以在查询运行之前对其进行操作。 ToList() 将强制执行查询并将对象放入内存。如果你想在查询之后“找到”一个项目,那么你可以对你的列表做这样的事情:

workers.SingleOrDerfault(x => x.WorkerId == WorkerId);

如果您像这样将它们全部保存在内存中并进行更改,那么您将通过调用 .SaveChanges() 来保存这些更改。

但是,如果您需要在查询到达数据库之前对 IQueryable 应用更多筛选,那么您需要在调用 ToList() 之前操作 IQueryable。

关于c# - 使用 Entity Framework 选择 DBSet 中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32316001/

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