使用 Entity Framework Core,如何生成 EF 模型和实体?
根据 ASP.NET Core - Existing Database Microsoft 文章你需要在包管理器控制台中运行这样的命令:
Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
这让您可以零控制要导入的表或 View 。这是否可能是现在使用 EF Core 对数据库进行逆向工程并创建 EF 模型和实体的唯一方法?与多年来使用完整 Entity Framework 完成的方法相比,这种方法有何进展?
最佳答案
我知道这个问题有点老了,但我认为它对遇到同样问题的人非常有用。
如果我没有正确理解您的问题,您想要指定应该生成哪些表格。
如果您将 -Tables
参数添加到命令中,应该是可能的。
这是我用来生成 3 个数据库表的命令(在包管理器控制台中):
Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=DatabaseName;Trusted_Connection=True;"
-Provider Microsoft.EntityFrameworkCore.SqlServer
-OutputDir Models -Context NorthwndContext
-Tables Products,Categories,Suppliers -Force
如您所见,我使用 Northwnd-Database 并且只生成表“产品、类别和供应商”。显然,您可以添加更多表格,只需将它们用逗号分隔即可。
如果您不知道,您可以通过转到数据连接(服务器资源管理器)获取数据库名称,单击要添加的数据库,然后在右侧(属性),您会看到一个属性(名称) .对我来说是“NORTHWND.MDF”。
我使用 -Force
覆盖我已经创建的任何模型。
您可以使用-DataAnnotations
来获取带注释的模型。否则,您将获得 Fluent 模型配置。
PS:我只在 ASP.NET Core 2 和 Entity Framework Core 2.0.0 上尝试过。
关于c# - Entity Framework Core 从现有数据库创建模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41705235/