我有一个干净的项目解决方案(打算是.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添加到模型中)。 / p>
我计划将此语句放入Powershell脚本中,直到可以从项目文件夹(已在其中安装nuget Microsoft.EntityFrameworkCore.Tools(2.1.4)的位置)中调用它为止。
答案 0 :(得分:2)
这是因为它将尝试为Context
添加Table4
文件,但由于已经存在而无法添加。已经有一个feature request用于更新Entity Framework Core支架,而不必每次都重新创建它们。您每次必须使用-Force
标志