这段代码可以工作,但只能删除数据库中的第一个位置。我对 .Net 框架还比较陌生。我知道我正在使用 FirstOrDefault;但是我不知道如何搜索数据库并删除与要求匹配的所有实例。
MMLeagueParticipant removeThisParticipant = db.ParticipatingKids.FirstOrDefault(i=>i.ParticipantId == ParticipantId && i.sport.sport == SportsTab);
if(removeThisParticipant == null)
{
Console.WriteLine("removeThisParticopant in [IActionResults Remove] was null");
return RedirectToAction("Dashboard","Dashboard");
}
if(removeThisParticipant != null)
{
Console.WriteLine("removeThisParticopant in [IActionResults Remove] was NOT null");
db.ParticipatingKids.Remove(removeThisParticipant);
db.SaveChanges();
return RedirectToAction("Dashboard", "Dashboard");
}
我想做的事情:
我想在数据库中删除所有符合条件的实例。
我尝试过的方法:
.Where()
无法隐式转换类型“System.Linq.IQueryable<LeagueProject.Models.MMLeagueParticipant>”为“LeagueProject.Models.MMLeagueParticipant”。
.All()。但这会返回一个布尔值
.Contains()。也返回了一个布尔值
IEnumerable<MMLeagueParticipant>
。其次,我会将对Count()
的调用替换为对Any()
的调用(检查IEnumerable.HasNext
是否与实际迭代集合)。第三,您可能希望使用ToList()
来实现结果的物化,否则查询可能会运行两次。 - orhtej2