ASP.NET 5/EF7 中的 LINQ to Entities 是否不再需要 USING 语句?

Do we not need to have a USING statment for LINQ to Entites in ASP.NET 5/EF7 anymore?

当我在我的 ASP.Net 4.6 项目中使用 Entity Framework 6 时,我会像这样构建一个 LINQ to Entities 查询

using (var db = new ForumContext())
{
    var model = db.yaf_Message
                    .Where(yt => yt.yaf_Topic.ForumID == 2 && yt.ReplyTo == null)
                    .Include("yaf_Topic")
                    .OrderByDescending(yt => yt.yaf_Topic.Posted)
                    .Select(yt => new NewsVM()
                    {
                        PostedBy = yt.yaf_Topic.UserDisplayName,
                        RawDatePosted = yt.yaf_Topic.Posted,
                        RawSubject = yt.Message,
                        Title = yt.yaf_Topic.Topic,
                        TopicID = yt.TopicID
                    }).ToList();

    return View(model);
}

我现在在使用 Entity Framework 7 的 ASP.Net 5 (MVC 6) 应用程序中工作,令我惊讶的是,当我开始在我的 using 语句中写出 LINQ 时,Intellisense 没有接受任何 table 个名字。所以我打开了一个关于在 Entity Framework 7 中进行查询的 MS 教程,并找到了 this page。令我惊讶的是,他们没有创建上下文的新实例,但他们看起来正在使用依赖注入来完成所有工作,而且他们根本没有调用 USING 语句。

所以我们不需要再做那个了,现在 DI 会为我们搞定一切吗?

正如 Gert Arnold 在评论中所解释的那样 ASP.Net Core 现在拥有自己的 DI 框架,可与 EF Core 一起使用。使用 DI 时,旧方法不起作用,您只需使用 DI 创建一个实例并直接调用它,如 the documents.

中所示