c# - .NET Core EF 2.1 脚手架-数据库优先-如何添加更多表

标签 c# asp.net-core .net-core entity-framework-core

我有一个干净的项目解决方案(旨在成为一个 .NET Core MVC 应用程序)

我有两个项目 - Home.CorePoC.EntityModel 和 Home.CorePoC.Model 我正在从 Home.CorePoC.Model 调用 dotnet cli。

我的想法是,我想要部分类和与自定义属性和数据库属性的逻辑分离。

我想编写一个 PowerShell 脚本,当我想添加/删除一些表、表中的列等时我将调用它。

在 dotnet CLI 中,当我最初添加表时,它工作得很好:

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)或者有不同的方法如何避免这个非关键的错误消息(我成功地将 Table4 添加到我的模型)。

我打算将此语句放入将从项目文件夹(我已安装 nuget Microsoft.EntityFrameworkCore.Tools(2.1.4))调用的 PowerShell 脚本中

最佳答案

那是因为它会尝试为 Table4 添加 Context 文件,但无法添加,因为它已经存在。已经有一个feature request更新 Entity Framework Core 脚手架,而不必每次都重新创建它们。您每次都必须使用 -Force 标志

覆盖生成的实体

关于c# - .NET Core EF 2.1 脚手架-数据库优先-如何添加更多表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53610684/

相关文章:

c# - C# 接口(interface)中不允许的字段

c# - JSON 结果 : Expected ',' instead of ''

iis - 在没有 Kestrel 的 IIS 中托管 ASP.NET Core

c# - OwnsOne 从表键中删除 IDENTITY

c# - Core 2.0 Restsharp 使用 System.Runtime.Serialization.Formatters 构建警告

c# - PowerShell - 从 .csproj 文件获取版本

c# - 使用 Cosmos DB 时,将 CreateDocumentQuery 与谓词 SQL 注入(inject)结合使用是否安全?

c# - c++ wchar数组到c#

c# - 覆盖 ASP.NET Core 中的 Controller 名称

c# - 使用 C# 进行热巧克力验证