【问题标题】:What is the purpose of a db context class in asp.net mvcasp.net mvc中的数据库上下文类的目的是什么
【发布时间】:2015-08-11 22:53:05
【问题描述】:

我是 MVC 新手,已经完成了一些教程来掌握它,但在其中一些教程中,我遇到了一个带有 DbContext 类的示例asp.net mvc5 with EF6 tutorial

我曾尝试研究有关 DbContext 类的信息,但无法获得任何让我变得更聪明的信息!我只能找到更多相同的教程,但信息很少,我还在 msdn DbContext Class 上查找了该课程。

我在没有 db 上下文类的情况下完成了以前的教程,它工作正常,我的问题是我是否需要使用上下文类,使用 DbContext 类有什么好处?

任何帮助将不胜感激。

【问题讨论】:

    标签: c# asp.net-mvc entity-framework


    【解决方案1】:

    我首先会说DbContext 类与Entity Framework (EF) 相关,但随后问题标签会建议您自己弄清楚这一点。在典型用法中,从DbContext 类派生只是将基于 EF 的数据访问合并到您的应用程序中的方式。派生自DbContext 的类本质上是应用程序的数据访问层。

    所以反过来说,如果您想使用 Entity Framework 进行数据访问,DbContext 就是您想要的。

    【讨论】:

      【解决方案2】:

      您可以将DbContext 视为数据库连接和一组表,而将DbSet 视为表本身的表示。 DbContext 允许您使用连接字符串将模型属性(可能使用实体框架)链接到数据库。

      稍后,当您希望引用控制器中的数据库来处理数据时,您可以引用 DbContext。例如,

      public class UserSitesContext : DbContext
      {
          public UserSitesContext()
              :base("name=UserSitesContext")
          {
          }
      
          public virtual DbSet<Site> Sites { get; set; }
      }
      

      稍后在控制器中引用

      private UserSitesContext dbUser = new UserSitesContext();
      
      var queryExample = from u in dbUser.Sites select u;
      

      :base("connection") 指的是您在Web.config 中找到的连接字符串。

      【讨论】:

      • dbcontext 每次使用时是否都会创建与 db 的新连接?
      【解决方案3】:

      这是负责管理数据库连接的基类,并提供各种与数据库相关的功能,例如与数据库交互的数据访问方法。

      【讨论】:

        【解决方案4】:

        DbContext 是实体框架提供的一个类,用于建立与数据库的连接,查询数据库并关闭连接。

        扩展 DbContext 允许使用 DbSet 定义数据库模型(映射到表或更多表的特定 Set)、创建数据库、查询数据库...

        【讨论】:

          【解决方案5】:

          Entityframework 中的 dbContext 的工作方式类似于 DAL 数据访问层与您的数据库建立连接。

          【讨论】:

            猜你喜欢
            • 2015-06-04
            • 1970-01-01
            • 2017-03-02
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-11-21
            • 2011-01-12
            • 1970-01-01
            相关资源
            最近更新 更多