簡體   English   中英

EF Core 無法將數據從舊數據庫傳輸到新 SQL Server 數據庫中

[英]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

總結一下步驟。

  1. 下載鏈接中的項目。

  2. 轉到appsettings.json

  3. 將連接字符串中的數據庫名稱更改為ContosoUniversity2

  4. 保存更改並構建項目。

  5. 確保沒有程序實例正在運行並使用 CLI(命令行界面)或 PMC(包管理控制台)並導航到項目文件夾並輸入此命令。 dotnet ef migrations add InitialCreate

  6. 現在輸入命令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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM