[英]EF Core Fails to transfer data into new SQL Server DB from old one
重現步驟
我有一個 ASP.Net Core 2.2 Web 應用程序,后端 SQL Server DB 是在本教程中的 Entity Framework Core 中制作的。 https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/migrations?view=aspnetcore-2.2
總結一下步驟。
下載鏈接中的項目。
轉到appsettings.json
。
將連接字符串中的數據庫名稱更改為ContosoUniversity2
。
保存更改並構建項目。
確保沒有程序實例正在運行並使用 CLI(命令行界面)或 PMC(包管理控制台)並導航到項目文件夾並輸入此命令。 dotnet ef migrations add InitialCreate
。
現在輸入命令dotnet ef database update
。
預期行為
實體框架將數據從以前名為 ContosoUniversity1 的數據庫遷移到 ContosoUniversity2,包括所有列和表。 它在 Visual Studio 2019 中為作者工作。
實際行為
我只看到所有表和列的創建。 除了 __EFMigrationsHistory 中只有一行用於遷移歷史記錄之外,沒有其他數據。 我從 CLI 得到這個輸出。
`Build started...
Build succeeded.
info: Microsoft.EntityFrameworkCore.Infrastructure[10403]
Entity Framework Core 2.2.6-servicing-10079 initialized 'SchoolContext' us
ing provider 'Microsoft.EntityFrameworkCore.SqlServer' with options: None
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (666ms) [Parameters=[], CommandType='Text', CommandTime
out='60']
CREATE DATABASE [ContosoUniversity2];
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (161ms) [Parameters=[], CommandType='Text', CommandTime
out='60']
IF SERVERPROPERTY('EngineEdition') <> 5
BEGIN
ALTER DATABASE [ContosoUniversity2] SET READ_COMMITTED_SNAPSHOT ON;
END;
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (18ms) [Parameters=[], CommandType='Text', CommandTimeo
ut='30']
CREATE TABLE [__EFMigrationsHistory] (
[MigrationId] nvarchar(150) NOT NULL,
[ProductVersion] nvarchar(32) NOT NULL,
CONSTRAINT [PK___EFMigrationsHistory] PRIMARY KEY ([MigrationId])
);
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (3ms) [Parameters=[], CommandType='Text', CommandTimeou
t='30']
SELECT OBJECT_ID(N'[__EFMigrationsHistory]');
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeou
t='30']
SELECT [MigrationId], [ProductVersion]
FROM [__EFMigrationsHistory]
ORDER BY [MigrationId];
info: Microsoft.EntityFrameworkCore.Migrations[20402]
Applying migration '20191227004521_InitialCreate'.
Applying migration '20191227004521_InitialCreate'.
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeou
t='30']
CREATE TABLE [Course] (
[CourseID] int NOT NULL,
[Title] nvarchar(max) NULL,
[Credits] int NOT NULL,
CONSTRAINT [PK_Course] PRIMARY KEY ([CourseID])
);
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeou
t='30']
CREATE TABLE [Student] (
[ID] int NOT NULL IDENTITY,
[LastName] nvarchar(max) NULL,
[FirstMidName] nvarchar(max) NULL,
[EnrollmentDate] datetime2 NOT NULL,
CONSTRAINT [PK_Student] PRIMARY KEY ([ID])
);
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (3ms) [Parameters=[], CommandType='Text', CommandTimeou
t='30']
CREATE TABLE [Enrollment] (
[EnrollmentID] int NOT NULL IDENTITY,
[CourseID] int NOT NULL,
[StudentID] int NOT NULL,
[Grade] int NULL,
CONSTRAINT [PK_Enrollment] PRIMARY KEY ([EnrollmentID]),
CONSTRAINT [FK_Enrollment_Course_CourseID] FOREIGN KEY ([CourseID]) RE
FERENCES [Course] ([CourseID]) ON DELETE CASCADE,
CONSTRAINT [FK_Enrollment_Student_StudentID] FOREIGN KEY ([StudentID])
REFERENCES [Student] ([ID]) ON DELETE CASCADE
);
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeou
t='30']
CREATE INDEX [IX_Enrollment_CourseID] ON [Enrollment] ([CourseID]);
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeou
t='30']
CREATE INDEX [IX_Enrollment_StudentID] ON [Enrollment] ([StudentID]);
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeou
t='30']
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20191227004521_InitialCreate', N'2.2.6-servicing-10079');
Done.`
環境數據:
.NET Core SDK (reflecting any global.json):
Version: 2.2
Runtime Environment:
OS Name: Windows
OS Version: 6.1.7601
OS Platform: Windows
RID: win7-x64
遷移沒有任何問題。 解決方案是在我的備份文件夾中恢復到以前的備份,然后復制並粘貼教程中的代碼,而不是手寫。 結果我只拼錯了一行,並且能夠更正。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.