【发布时间】:2017-11-16 01:36:11
【问题描述】:
通常在使用实体框架时,我使用“using”子句:
using (var db = new dbcontext())
{
var blabla = db.table.tolist();
}
现在,我们已将我们的平台迁移到 .Net Core (2) 中,因为有一个很棒的 DI 机制,我们决定使用它。现在,我们不再使用上述方式,而是在构造函数中获取 dbcontext 作为参数:
public MeaningfullNameController(dbcontext db)
{
this.db = db;
}
而当另一个类需要使用 dbcontext 时,我们只需在第二个类的构造函数中传递上述 dbcontext 即可。
public class NewClass(dbcontext db)
{
this.db = db;
}
这种情况让我思考,垃圾收集器如何处理这种情况? 在性能方面与第一种方法有区别吗?内存泄漏?等等
谢谢, 修罗
【问题讨论】:
-
查看我的回答here。基本上它归结为 ASP.NET Core Abstractions 将在请求结束时处理作用域(每个请求)容器以及在它期间创建的所有一次性服务(瞬态和作用域服务,单例生存)
标签: c# .net asp.net-core garbage-collection .net-core