C# .NET核心EF 2.1脚手架-数据库优先-如何添加更多表
我有一个干净的项目解决方案(打算成为.NET核心MVC应用程序) 我有两个项目-Home.CorePoC.EntityModel和Home.CorePoC.Model 我正在从Home.CorePoC.Model调用dotnet cli 我的想法是,我希望从自定义属性和数据库属性中分离部分类和逻辑 我想编写一个powershell脚本,当我想添加/删除一些表、表中的列等时,我将调用它 在dotnet CLI中,当我最初添加表时,它可以正常工作:C# .NET核心EF 2.1脚手架-数据库优先-如何添加更多表,c#,asp.net-core,.net-core,entity-framework-core,C#,Asp.net Core,.net Core,Entity Framework Core,我有一个干净的项目解决方案(打算成为.NET核心MVC应用程序) 我有两个项目-Home.CorePoC.EntityModel和Home.CorePoC.Model 我正在从Home.CorePoC.Model调用dotnet cli 我的想法是,我希望从自定义属性和数据库属性中分离部分类和逻辑 我想编写一个powershell脚本,当我想添加/删除一些表、表中的列等时,我将调用它 在dotnet CLI中,当我最初添加表时,它可以正常工作: Scaffold-DbContext "Serve
Scaffold-DbContext "Server=sqlServ2016;Database=TestDb;Persist Security
Info=False;User ID=admin;Password=admin;" Microsoft.EntityFrameworkCore.SqlServer
-Tables "Table1","Table2","Table3" -ContextDir "..\Home.CorePoC.EntityModel"
-OutputDir "TestDB" -force -DataAnnotations -UseDatabaseNames
现在,当我只想添加更多的表时,它也可以工作,但我有一条错误消息:“无法添加‘Table4’。此文件夹中已经有一个同名的链接文件。”
此外,我在cli控制台中发现错误:
Exception calling "AddFromFile" with "1" argument(s): "A drag operation is already in progress (Exception from HRESULT: 0x80040103)"
我必须删除所有文件,然后重新创建它(最初创建的链接文件TestContext.cs),或者有不同的方法来避免此非关键错误消息(我成功地将表4添加到模型中)
我计划将此语句放入powershell脚本中,该脚本将从项目文件夹(我在其中安装了nuget Microsoft.EntityFrameworkCore.Tools(2.1.4))调用,因为它将尝试为
表4
添加上下文
文件,但无法执行,因为该文件已经存在。现在已经有了一个更新实体框架核心框架的方法,而不必每次都重新创建它们。每次都必须使用-Force
标志覆盖生成的实体我已经包括-Force标志。很明显,它是有效的,但我得到了相同的错误。此外,如果您知道如何通过cli控制台删除链接文件(将文件添加为链接),我将不胜感激。谢谢教授,我完全没想到你会把-Force
标志挂上。当您说您正在使用Scaffold DbContext
时,我假定您正在使用包管理器控制台进入Scaffold?如果您正在创建Powershell脚本,我建议使用dotnet cli命令结构dotnet ef dbcontext scaffold“Server=。\SQLEXPRESS;Database=SchoolDB;Trusted_Connection=True;”Microsoft.EntityFrameworkCore.SqlServer-o Models
from还可以查看在完成迁移时出现与您相同错误的地方。