[EF Core]数据迁移
Posted tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[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);
大概意思是配置数据迁移保持的程序集。
总结
一个简单的用法,遇到了,就记录一下,希望对你有所帮助
以上是关于[EF Core]数据迁移的主要内容,如果未能解决你的问题,请参考以下文章