如何使用构造函数访问控制器中的数据库连接

名称

我想使用构造函数在控制器中设置数据库连接。目前,我正在使用using关键字在每个控制器中设置数据库连接,如下所示。

public class ApplicationDbContext : DbContext
{
            public DbSet<Blog> Blogs { get; set; }
            public DbSet<Post> Posts { get; set; }

            protected override void OnConfiguring(DbContextOptionsBuilder options)
                => options.UseSqlServer("DefaultConnection");
     }
}

而控制器是

using System;
using Microsoft.AspNetCore.Mvc;
using static WebApplication1.Models.Model;

namespace WebApplication1.Controllers
{
    public class BlogController : Controller
    {

        public IActionResult Index()
        {
            using (var db = new ApplicationDbContext ()) {
                db.Add(new Blog { Url = "Hello! How are you" });
                db.SaveChanges();
                return View();
            }

        }
    }
}

在此,我想使用控制器构造函数来设置数据库连接。这样的事情。

private readonly ApplicationDbContext _db;

public BlogController(ApplicationDbContext db)
{
     _db = db;
}
恩科西

在启动期间配置上下文,以便可以将其注入到控制器中

services.AddDbContext<ApplicationDbContext>(options =>
    options.UseSqlServer("DefaultConnection")
);

并重构上下文以期望其构造函数中的选项,以便也可以将选项注入到上下文中。

public class ApplicationDbContext : DbContext {

    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options): base(options) {

    }

    public DbSet<Blog> Blogs { get; set; }
    public DbSet<Post> Posts { get; set; }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Laravel 5.4中的控制器从数据库中传递5个不同数据之和的数据?

我如何为数据库活动创建函数并在Laravel 5.1中的控制器中调用它们

使PDO数据库连接在控制器和模型中可用

重构!如何在数据库查询中重新使用变量以在Rails控制器中检索数据

如何在MVC 4中从控制器访问私有构造函数到模型类

如何使用ajax将数据属性发送到laravel控制器(存储在数据库中)?

laravel:如何从控制器中的数据库中获取全日历数据

小豆 如何从控制器中的Ajax将数据保存在数据库中

如何通过幼虫中的控制器将数据保存在数据库中

如何在控制器中传递数据库数据而不是数组

如何从cnc控制器获取数据并将其存储在数据库中?

如何从 CodeIgniter 控制器中的数据库中分解数据?

如何从数据库到控制器检索项目?

从控制器添加数据库中的列

Codeigniter获取控制器中的数据库值

如何访问属于prestashop 1.6中另一个控制器/模型的.tpl文件中的数据库数据?

如何在表视图控制器中从领域数据库中删除对象

如何在控制器中获取数据库上下文

如何在控制器上使用Laravel护照显示当前用户的数据库列表

在控制器CakePHP中的同一功能中使用两个数据库

使用laravel从控制器中的数据库中选择

不能在laravel(DB :: beginTransaction)中的控制器中使用数据库事务

如何使用Micronaut中的GORM检索过帐数据,在控制器中对其进行验证并将其保存在数据库中?

如何将数据库中的数据从模型发送到控制器代码标记器

如何从 Rails 关联中的控制器访问数据

如何在 Ember 控制器中访问模型数据

如何使用自定义控制器方法或ASP.net MVC中的任何其他方法将数据插入数据库?

在 Mule 4 中,如何使用数据库连接器保存从数据库中检索到的数据?

如何在Angular JS的子控制器中访问父控制器数据