C# 插入后如何处理实体框架记录对象?
我在实体框架数据库中插入了很多记录,在运行C# 插入后如何处理实体框架记录对象?,c#,.net,entity-framework,garbage-collection,idisposable,C#,.net,Entity Framework,Garbage Collection,Idisposable,我在实体框架数据库中插入了很多记录,在运行.SaveChanges()后不再需要它们。此外,我实际上希望尽快释放内存(以便创建新记录)。我没有保留任何链接到旧记录对象的变量,但GC似乎没有删除它们,因此,我认为,是数据上下文或其他东西使它们保持活动状态。如何正确地处理它们,让GC释放它们占用的内存 这其实不是什么问题。让GC完成它的工作 我认为,是数据上下文或其他东西让它们保持活力 对。基本的解决方案是尽快且经常地处理上下文。您是否尝试过在“using”语句中创建上下文 using(var co
.SaveChanges()后不再需要它们代码>。此外,我实际上希望尽快释放内存(以便创建新记录)。我没有保留任何链接到旧记录对象的变量,但GC似乎没有删除它们,因此,我认为,是数据上下文或其他东西使它们保持活动状态。如何正确地处理它们,让GC释放它们占用的内存
这其实不是什么问题。让GC完成它的工作
我认为,是数据上下文或其他东西让它们保持活力
对。基本的解决方案是尽快且经常地处理上下文。您是否尝试过在“using”语句中创建上下文
using(var context = new MyContext())
{
// Do work here .....
}
不会释放资源,只是将更改提交到数据库
要释放资源,需要调用对象上下文的方法。
可以通过方法或将代码放入
还有,方法,否则您可能会耗尽连接
这里有一个类似的问题:您的上下文是否在使用语句的中?好吧,但我会在之后再次使用它。我必须按顺序插入数百万条记录,您的意思是我必须多次处理和重新创建数据库连接吗?不能强制上下文忘记插入的记录吗?处理上下文与关闭连接不同。
using(var ctx = new EntityModel())
{
// do the inserts
ctx.SaveChanges();
}