gpt4 book ai didi

c# - 如何删除 Entity Framework .Core 中的一组记录?

转载 作者:行者123 更新时间:2023-12-05 02:03:15 25 4
gpt4 key购买 nike

我有一个 EF 模型(和相应的 MSSQL 表)“HCF”。

我有另一个 EF 模型(和 MSSQL 表)“HCFNotes”。没有外键约束或 ManyToOne:它们只是两个单独的表。

我有一个像这样删除 HCF 记录的 ASP.Net Core Razor 页面:

var HCF = await _context.HCF.FindAsync(id);
_context.HCF.Remove(HCF);
await _context.SaveChangesAsync();

我可以使用此 LINQ 获得“关联注释”的列表:

IQueryable<HCReportingNote> notesQuery =
from n in _context.HCReportingNotes
where n.HCFId == HCF.ID
select n;

我可以像这样删除原始 SQL 中的所有关联注释:

delete from HCReportingNotes where ID = HCFId

但我更愿意使用 LINQ。

问:.Select() 列表和 .Remove().Clear() 的“正确”语法是什么相关注释?

最佳答案

既然您已经获得了相关注释的列表,那么在DbSet 上使用RemoveRange,删除每个元素。保存更改后可以应用。

//...

var HCF = await _context.HCF.FindAsync(id);
_context.HCF.Remove(HCF);

IQueryable<HCReportingNote> notesQuery =
from n in _context.HCReportingNotes
where n.HCFId == HCF.ID
select n;

_context.HCReportingNotes.RemoveRange(notesQuery);

await _context.SaveChangesAsync();

//...

关于c# - 如何删除 Entity Framework .Core 中的一组记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65364822/

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