【问题标题】:Is OR/M available in .NET core web API project?OR/M 在 .NET 核心 Web API 项目中可用吗?
【发布时间】:2020-05-28 13:33:20
【问题描述】:

在 ASP.NET Framework 项目中,可以右键单击项目并使用现有数据库添加 ADO.NET 实体数据模型。这将从数据库的表和列创建类和属性。

但 ASP.NET Core API Web 应用程序项目中缺少此选项。我可以使用什么来从现有的 SQL Server 数据库创建这些类,或者那是不可能的?

【问题讨论】:

  • 如果您想坚持使用 Entity Framework,请查看 EF Core:docs.microsoft.com/en-us/ef/core 您可以使用一些命令行工具从表中生成类。我最近开始使用 Dapper,它的简单性给我留下了深刻的印象(尽管您必须自己滚动课程):dapper-tutorial.net
  • 而且,如果您想以数据库优先的方式使用 EF/EF Core,请查看反向 POCO 生成器reversepoco.co.uk

标签: c# visual-studio asp.net-core ado.net entity-framework-core


【解决方案1】:

尝试在你的项目文件夹下执行以下命令:

$ dotnet ef dbcontext scaffold "Server=....." Microsoft.EntityFrameworkCore.SqlServe
r -o Models

并用您的数据库连接字符串填充字符串Server=.....。确保您可以成功连接到该数据库。

EF 会尝试从数据库中构建模型。

参考:https://anduin.aiursoft.com/post/2020/2/13/creating-a-model-for-an-existing-database-in-entity-framework-core

【讨论】:

  • 我在包管理器控制台中尝试了Scaffold-DbContext,但得到了Scaffold-DbContext : The term 'Scaffold-DbContext' is not recognized as the name of a cmdlet, function, script file, or operable program.让我试试这个方法
【解决方案2】:

成功了

在包管理器控制台中:

  1. Install-Package Microsoft.EntityFrameworkCore.Tools
  2. scaffold-dbcontext "your_connection_string" Microsoft.EntityFrameworkCore.SqlServer -outputdir Models -Table table1,table2

如果您收到“术语 'scaffold-dbcontext' 未被识别为 cmdlet 的名称...”的错误消息,请参阅此问题:The term 'scaffold-dbcontext' is not recognized as the name of a cmdlet, function, script file, or operable program

【讨论】:

    猜你喜欢
    • 2019-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-01
    • 2019-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多