Entity Framework 6 เพิ่มการสนับสนุนสำหรับหลายDbContext
s โดยการเพิ่มแฟล็ก-ContextTypeName
และ -MigrationsDirectory
ฉันเพิ่งรันคำสั่งในคอนโซล Package Manager ของฉันและวางผลลัพธ์ด้านล่าง ...
หากคุณมี 2 DbContext
วินาทีในโปรเจ็กต์ของคุณและคุณเรียกใช้enable-migrations
คุณจะได้รับข้อผิดพลาด (ดังที่คุณอาจทราบแล้ว)
PM> enable-migrations
More than one context type was found in the assembly 'WebApplication3'.
To enable migrations for 'WebApplication3.Models.ApplicationDbContext', use Enable-Migrations -ContextTypeName WebApplication3.Models.ApplicationDbContext.
To enable migrations for 'WebApplication3.Models.AnotherDbContext', use Enable-Migrations -ContextTypeName WebApplication3.Models.AnotherDbContext.
ดังนั้นคุณต้องใช้enable-migrations
ในแต่ละDbContext
แยก และคุณต้องระบุโฟลเดอร์สำหรับแต่ละConfiguration.cs
ไฟล์ที่จะสร้าง ...
PM> Enable-Migrations -ContextTypeName ApplicationDbContext -MigrationsDirectory Migrations\ApplicationDbContext
Checking if the context targets an existing database...
Code First Migrations enabled for project WebApplication3.
PM> Enable-Migrations -ContextTypeName AnotherDbContext -MigrationsDirectory Migrations\AnotherDbContext
Checking if the context targets an existing database...
Code First Migrations enabled for project WebApplication3.
ในการเพิ่มการย้ายข้อมูลสำหรับแต่ละรายการDbContext
คุณทำได้โดยระบุชื่อConfiguration
คลาสแบบเต็ม:
PM> Add-Migration -ConfigurationTypeName WebApplication3.Migrations.ApplicationDbContext.Configuration "InitialDatabaseCreation"
Scaffolding migration 'InitialDatabaseCreation'.
The Designer Code for this migration file includes a snapshot of your current Code First model. This snapshot is used to calculate the changes to your model when you scaffold the next migration. If you make additional changes to your model that you want to include in this migration, then you can re-scaffold it by running 'Add-Migration InitialDatabaseCreation' again.
PM> Add-Migration -ConfigurationTypeName WebApplication3.Migrations.AnotherDbContext.Configuration "InitialDatabaseCreation"
Scaffolding migration 'InitialDatabaseCreation'.
The Designer Code for this migration file includes a snapshot of your current Code First model. This snapshot is used to calculate the changes to your model when you scaffold the next migration. If you make additional changes to your model that you want to include in this migration, then you can re-scaffold it by running 'Add-Migration InitialDatabaseCreation' again.
และคุณวิ่งupdate-database
ในลักษณะเดียวกัน:
PM> Update-Database -ConfigurationTypeName WebApplication3.Migrations.ApplicationDbContext.Configuration
Specify the
Applying explicit migrations: [201402032113124_InitialDatabaseCreation].
Applying explicit migration: 201402032113124_InitialDatabaseCreation.
Running Seed method.
PM> Update-Database -ConfigurationTypeName WebApplication3.Migrations.AnotherDbContext.Configuration
Specify the
Applying explicit migrations: [201402032113383_InitialDatabaseCreation].
Applying explicit migration: 201402032113383_InitialDatabaseCreation.
Running Seed method.
หวังว่านี่จะช่วยได้