很抱歉,我搜索了一下但无法找到我的问题的答案。如果这是一个重复的问题,请引导我至正确的解决方案。
我有一个Entity Framework Core的设置,它跟踪一个名为“TestRun”的对象。我创建了一个TestRuns列表,并希望将它们添加到DbContext中,然后将它们写入数据库。使用常规的ForEach
循环可以正常工作,但是当我尝试在using块内使用List.Foreach
时,Visual Studio会提示该一次性对象已被释放。“访问已释放的闭包”。
using (var context = new TestResultsContext())
{
_testRuns.ForEach(t => context.Add(t));
context.SaveChanges();
}
我认为这与“懒加载”有关,但
ForEach
是一个空的返回值,因此无法强制结果枚举。
DbContext.AddRange
方法可以让您在一行中添加实体集合。尝试一下。 - Mohousing
中编写它?此外,ForEach
不是LINQ。它是常规的List<T>类方法,因此它不是惰性的。 - GrayCat