【问题标题】:Entity Framework Core models实体框架核心模型
【发布时间】:2018-08-17 23:29:38
【问题描述】:

我已经构建了一个连接到 MySQL 的 ASP.NET Core MVC 应用程序。我想通过添加实体框架来增强解决方案,因为它会自动为您生成实体和模型。但是阅读这个新版本(EF Core),看起来您必须在代码中创建模型,然后运行脚本来创建数据库。这似乎是倒退,如果您不想在运行时创建数据库有什么好处?

我认为 Entity Framework 正好相反,你可以先创建数据库,然后通过一个漂亮的 UI 在 Visual Studio 中添加连接它,它会为你生成一切。为什么现在反转了?我宁愿在 MySQL 中维护数据库,然后在 Visual Studio 中获取/同步更改。

【问题讨论】:

  • EF 总是有 2 个版本:数据库优先或代码优先。据我所知,在 EF Core 中它更加手动。我发现 Database First 非常有用,这就是阻止我迁移到 Core 版本的原因。
  • 这很有趣,我总是先使用数据库。很高兴知道有多种选择

标签: c# entity-framework-core


【解决方案1】:

确实,Entity Framework Core(至少目前)仅支持 Code First 方法,但这仅意味着通过 EDMX 文件和 T4(通常使用可视化设计器)生成类的选项消失了。

Code First 有两个选项,就像在 Entity Framework 6 中一样:

  1. 从头开始。根据需要创建类,通过类设计数据库。
  2. 通过对数据库进行逆向工程来创建类。您可以在此处查看如何执行此操作:Getting Started with EF Core on ASP.NET Core with an Existing Database。

这两个选项都只会让您与 POCO 绑定,您可以决定是否要使用迁移。

【讨论】:

    【解决方案2】:

    对我有用的是Pomelo.EntityFrameworkCore.MySql

    使用连接字符串运行此命令:

    dotnet ef dbcontext scaffold "Server=localhost;Database=ef;User=root;Password=123456;" "Pomelo.EntityFrameworkCore.MySql"
    

    使用

     -o Models 
    

    在 Models 目录中生成类

    【讨论】:

      猜你喜欢
      • 2021-07-14
      • 1970-01-01
      • 1970-01-01
      • 2020-06-18
      • 2018-05-13
      • 2017-04-03
      • 2020-05-10
      • 2020-09-12
      • 2020-06-21
      相关资源
      最近更新 更多