首页 > 数据库技术 > 详细

2.EF Core添加数据库配置的几种方式

时间:2020-02-07 20:22:15      阅读:313      评论:0      收藏:0      [点我收藏+]

一、OnConfiguring:重写OnConfiguring方法添加配置信息

    public class BloggingContext: DbContext
    {
        /// <summary>
        /// 配置数据连接信息
        /// </summary>
        /// <param name="optionsBuilder"></param>
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseMySql("数据库连接字符串");
            base.OnConfiguring(optionsBuilder);
        }

    }

二、构造函数参数方式配置

  a.生成DbContextOptions

  b.传入构造函数参数

var optionsBuilder = new DbContextOptionsBuilder<BloggingContext>();
optionsBuilder.UseMySql("数据库连接字符串");
using (BloggingContext db=new BloggingContext(optionsBuilder.Options)) {
  return db.Blogs;
}

 

三、容器添加方式

1、添加操作数据库上下文的构造函数

    public  class BloggingContext : DbContext
    {
        /// <summary>
        /// 容器初始化时传入options
        /// </summary>
        /// <param name="options"></param>
        public BloggingContext(DbContextOptions<BloggingContext> options): base(options)
        {
        }

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

2、在Startup.ConfigureServices方法中添加服务依赖,这里有两种添加方式

         
services.AddDbContextPool<BloggingContext>(options => options.UseMySql("数据库连接字符串")); //会集成.net core 日志机制,微软推荐使用连接池的方式 services.AddDbContext<BloggingContext>(options=>options.UseMySql("数据库连接字符串"));

3、 获取方式

  a.服务方式获取

            using (var context = HttpContext.RequestServices.GetService<BloggingContext>())
            {
                // do stuff
            }

  b.控制器方式传入,参数加上[FromServices]

        public IActionResult Index([FromServices]BloggingContext context)
        {return Content(“”);
        }

  c.构造函数传入

    public class HomeController : Controller
    {
        private readonly BloggingContext _context;

        public HomeController(BloggingContext context)
        {
            _context = context;
        }
     }

 

2.EF Core添加数据库配置的几种方式

原文:https://www.cnblogs.com/Adoni/p/12270153.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!