我正在尝试将 Entity Framework Core 与预先存在的数据库一起使用,有时是这样。
要重现此错误:
SQL:
CREATE DATABASE TestDB
GO
USE TestDB
CREATE TABLE Parent
(
Id INT NOT NULL PRIMARY KEY IDENTITY(1,1),
Name NVARCHAR(400) NOT NULL
)
CREATE TABLE Child
(
Id INT NOT NULL PRIMARY KEY IDENTITY(1,1),
Name NVARCHAR(400) NOT NULL,
ParentId INT NOT NULL FOREIGN KEY REFERENCES PARENT(Id)
)
//CHANGE INSTANCE NAME IF NEEDED
Scaffold-DbContext "Server=.;Database=TestDB;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
这将创建所有模型和上下文以访问您的数据库。
现在开始我的问题。
我运行 add-migration InitialCreate
并生成一个迁移类。很棒,对吧?
然后我运行 Update-Database
我收到此错误。
<块引用>数据库中已经有一个名为“Parent”的对象。
如果我注释掉 up 方法中的所有内容,则迁移工作。
如何在没有数据库的系统上而不是在有初始数据库的系统上应用此迁移?
答案 0 :(得分:0)
因为它是一个现有的数据库并且您已经运行 Scaffold-DbContext "Server=.;Database=TestDB;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir 模型 要获取模型,您无需再次运行或执行以下操作: add-migration InitialCreate 和 Update-Database 您需要做的就是确保您的连接字符串正确无误。