zoukankan      html  css  js  c++  java
  • [EF Core]数据迁移(二)

    摘要

    在实际项目中,大多都需要对业务逻辑以及操作数据库的逻辑进行分成操作,这个时候该如何进行数据的迁移呢?

    步骤

    上篇文章:EF Core数据迁移操作

    比如,我们将数据上下文放在了Data层。

    看一下BlogContext内容如下:

     public class BlogContext : DbContext
        {
    
            public BlogContext(DbContextOptions options) : base(options)
            {
            }
            public DbSet<User> Users { set; get; }
          
        }

    在appsetting中配置连接字符串

    {
      "ConnectionStrings": {
        "DefaultConnection": "Server=localhost;database=MyBlogDb;uid=root;pwd=abcd;"
      },
      "Logging": {
        "IncludeScopes": false,
        "LogLevel": {
          "Default": "Warning"
        }
      }
    }

    在StartUp启动类中,做如下操作:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    using Microsoft.AspNetCore.Builder;
    using Microsoft.AspNetCore.Hosting;
    using Microsoft.EntityFrameworkCore;
    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.DependencyInjection;
    using Wolfy.Blog.Data;
    
    namespace Wolfy.Blog
    {
        public class Startup
        {
            public Startup(IConfiguration configuration)
            {
                Configuration = configuration;
    
            }
    
            public IConfiguration Configuration { get; }
    
            // This method gets called by the runtime. Use this method to add services to the container.
            public void ConfigureServices(IServiceCollection services)
            {
    string connStr = Configuration.GetConnectionString("DefaultConnection"); services.AddDbContext
    <BlogContext>(options => options.UseMySQL(connStr, opt => opt.MigrationsAssembly("Wolfy.Blog"))); services.AddMvc(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseBrowserLink(); } else { app.UseExceptionHandler("/Home/Error"); } app.UseStaticFiles(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); } } }

    可以看到上面可以指定迁移程序集

      //
            // 摘要:
            //     Configures the assembly where migrations are maintained for this context.
            //
            // 参数:
            //   assemblyName:
            //     The name of the assembly.
            //
            // 返回结果:
            //     The same builder instance so that multiple calls can be chained.
            public virtual TBuilder MigrationsAssembly([CanBeNullAttribute] string assemblyName);

    大概意思是配置数据迁移保持的程序集。

    总结

    一个简单的用法,遇到了,就记录一下,希望对你有所帮助

  • 相关阅读:
    解决org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.xyfer.dao.UserDao.findById
    Oracle使用MyBatis中RowBounds实现分页查询
    普元EOS开发经验总结——不定期持续更新中
    Vue数据列表倒计时展示
    Java后端学习路线
    Linux下命令行安装WebLogic 10.3.6
    Oracle快速运行一指禅
    maven学习知识点汇总
    EOS下控制台以及图形界面打印sql语句
    Myeclipse使用过程配置汇总
  • 原文地址:https://www.cnblogs.com/wolf-sun/p/8064750.html
Copyright © 2011-2022 走看看