【问题标题】:Create new database using Entity Framework Core, npgsql, PostgreSQL使用 Entity Framework Core、npgsql、PostgreSQL 创建新数据库
【发布时间】:2019-06-08 09:06:04
【问题描述】:

新手在这里抱歉。我正在阅读 Entity Framework Core、npgsql 和 PostgreSQL(所有这些东西都是新手!!)有人可以非常友好地解释或指出我在哪里阅读:我正在尝试使用代码创建一个全新的数据库。

根据我阅读的内容,我正在使用 pgadmin 或脚本直接创建数据库。我想要做的是通过代码创建一个数据库(这样用户可以安装 Postgresql 和我的网站,但不必担心 PostgreSQL 的任何直接 SQL 命令)。

谢谢!

【问题讨论】:

  • 您只需要添加一个初始迁移 - 这里没有介绍吗? docs.microsoft.com/en-us/ef/core/managing-schemas/migrations
  • 感谢您的确认,我不确定是否有那么简单!但是它怎么知道我要创建的数据库的名称是什么?是不是因为我在连接字符串中指定了?
  • 是的。加上当然指定的用户需要有创建数据库的权限。我认为通常的建议是仍然使用脚本 - 您可以使用 Script-Migration 命令为您生成这些。这使您可以更好地控制以后对现有数据库的升级(例如,在删除列之前将数据复制到新表中)。我为我以这种方式生成的 EF Core 项目使用版本控制的 DB Create 脚本,到目前为止它运行良好。
  • 非常感谢您提供的有用信息。非常感谢。

标签: c# postgresql .net-core entity-framework-core npgsql


【解决方案1】:

有两种方法可以让 EF Core 创建数据库:

  1. 使用轻量级的EnsureCreated() 方法,它只是基于模型创建您的数据库。如果您刚刚开始,最好从这里开始,see the docs
  2. 使用迁移,它还负责在代码模型更改时更新数据库架构。例如,如果向其中一个 C# 类添加属性,EF Core 可以自动生成迁移,将相应的列添加到表中。 Here are the docs for that

are here 的一般文档。作为一般规则,首先阅读并理解 EF Core 文档,然后您可以查看特定于数据库和提供程序的详细信息(例如 PostgreSQL/Npgsql)。

【讨论】:

  • 我认为这是我犯的错误,试图同时学习所有内容,并且可能倒退!非常感谢
猜你喜欢
  • 2020-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-21
  • 2017-07-10
  • 2021-04-04
  • 1970-01-01
  • 2019-02-19
相关资源
最近更新 更多