我最近升级到.Net Core 2.0,我遇到了很多问题,脚手架现有的数据库。
首先,当我跑
时Scaffold-DbContext "Server=mysrv;Database=mydb;User Id=uname;password=pword" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
我收到以下错误。这真让我感到困惑,因为我的数据库中没有带有UK_principal_name索引的表?
Unable to find a table in the database matching the selected table dbo.sysdiagrams.
For index PK__sysdiagrams__0CBAE877. Unable to find parent table dbo.sysdiagrams. Skipping index.
For index UK_principal_name. Unable to find parent table dbo.sysdiagrams. Skipping index.
所以我尝试像这样从数据库中指定一个我想要的表。
Scaffold-DbContext "Server=mysrv;Database=mydb;User Id=uname;password=pword" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Table Burner
我得到了之前的错误以及此错误。
Index column dbo.BurnerHistory belongs to index PK_BurnerHistory on table Burn_Hist_Idx which is not included in the selection set. Skipping.
当表中的表格未包含在选择集中时,它是什么意思?在以前版本的.NET Core上,运行此scaffold命令没有问题,它会抓取我的所有表并在模型中为它们生成代码。
答案 0 :(得分:0)
原来我的问题是我正在使用SQL Server 2005,并且Scaffold-Dbcontext在该版本上有dbo.sysdiagrams错误。不得不回到.NET的旧版本。
这些不只是警告,因为在我解决这个问题之前,我无法支撑我的模型。