在一個項目中,使用了多個 DbContext
且每一個 DbContext
對應一個數據庫的狀況數據庫
單擊「肯定」c#
將此文件的內容替換爲如下代碼:cookie
using System.Collections.Generic; using Microsoft.EntityFrameworkCore; namespace WebApplication.Models { public class FirstDbContext : DbContext { public FirstDbContext(DbContextOptions<FirstDbContext> options) : base(options) { } public DbSet<Blog> Blogs { get; set; } public DbSet<Post> Posts { get; set; } } public class Blog { public int BlogId { get; set; } public string Url { get; set; } public ICollection<Post> Posts { get; set; } } public class Post { public int PostId { get; set; } public string Title { get; set; } public string Content { get; set; } public int BlogId { get; set; } public Blog Blog { get; set; } } }
生產應用一般會將每一個類放在單獨的文件中。 爲簡單起見,本教程將這些類放在一個文件中。函數
將此文件的內容替換爲如下代碼:工具
using Microsoft.EntityFrameworkCore; namespace WebApplication.Models { public class SecondDbContext : DbContext { public SecondDbContext(DbContextOptions<SecondDbContext> options) : base(options) { } public DbSet<Student> Students { get; set; } } public class Student { public int Id { get; set; } public string Name { get; set; } } }
生產應用一般會將每一個類放在單獨的文件中。 爲簡單起見,本教程將這些類放在一個文件中。spa
至此,項目的目錄結構以下:code
若要使 FirstDbContext
和 SecondDbContext
可用於 MVC 控制器,請在 Startup.cs
中將其註冊爲服務。blog
在應用程序啓動過程當中,經過依賴關係注入 註冊服務(如 FirstDbContext),以便可以經過構造函數的參數和屬性向使用服務的組件(如 MVC 控制器)自動提供該服務。教程
在 Startup.cs 中,添加如下 using 語句:
using WebApplication.Models; using Microsoft.EntityFrameworkCore;
將如下 手動高亮
的代碼添加到 ConfigureServices
方法:
public void ConfigureServices(IServiceCollection services) { services.Configure<CookiePolicyOptions>(options => { // This lambda determines whether user consent for non-essential cookies is needed for a given request. options.CheckConsentNeeded = context => true; options.MinimumSameSitePolicy = SameSiteMode.None; }); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); var connection = @"Server=你的數據庫地址;Database=FirstDbContext;User Id=你的數據庫帳號;Password=你的數據庫密碼;"; // 手動高亮 services.AddDbContext<FirstDbContext> // 手動高亮 (options => options.UseSqlServer(connection)); // 手動高亮 var secondDbconnection = @"Server=你的數據庫地址;Database=SecondDbContext;User Id=你的數據庫帳號;Password=你的數據庫密碼;"; // 手動高亮 services.AddDbContext<SecondDbContext> // 手動高亮 (options => options.UseSqlServer(secondDbconnection)); // 手動高亮 }
生產應用一般會將鏈接字符串放在配置文件或環境變量中。 爲簡單起見,本教程在代碼中定義它。
如下步驟使用遷移建立數據庫。
運行如下命令建立 FirstDbContext
的遷移:
Add-Migration InitialCreate -Context FirstDbContext -OutputDir Migrations\FirstDbContextMigrations Update-Database -Context FirstDbContext
-Context
DbContext
類,請參閱
這裏瞭解詳細信息。
運行如下命令建立 SecondDbContext
的遷移:
Add-Migration InitialCreate -Context SecondDbContext -OutputDir Migrations\SecondDbContextMigrations Update-Database -Context SecondDbContext
至此,項目的目錄結構以下:
數據庫以下: