使用实体框架7添加新迁移时,表未添加到数据库

布莱克·里维尔(Blake Rivell)

我正在使用最新的ASP.NET Core 1.0和EF7。

我从头开始创建了一个新的ASP.NET Core 1.0 MVC Web应用程序,并且运行初始迁移非常简单:

dnx ef migrations add Initial
dnx ef database update 

(我认为我不需要运行此数据库更新命令,但仍然可以执行)

另外,我有以下内容作为我的DbContext的构造函数,我也不认为我也需要:

public ApplicationDbContext()
{
     Database.EnsureCreated();
}

创建初始迁移后,我注意到DbContext中任何DbSet的表都已添加到数据库中。

现在,我只是简单地添加了一个模型,并在我的DbContext中为该模型添加了一个DbSet,并运行了以下命令:

dnx ef migrations add BookMigration
dnx ef database update

在调用数据库更新时,我注意到迁移尝试为所有迁移运行并创建表,而不仅仅是仅应用新迁移。

这是一个错误吗?我该如何预防呢?

克里斯·普拉特

我自己还不太熟悉EF7,但是您的问题使我很感兴趣,因为您似乎做对了所有事情。但是,根据我从EF的Database.EnsureCreated()早期版本中了解到的情况,这条线向我跳了出来。稍作研究之后,我想我在这里找到了您的问题:http : //thedatafarm.com/data-access/ef7-ensurecreated-vs-migrate-methods/

所有信息归功于这篇文章的原始作者,但是为了后代,我将在这里进行总结。该帖子的内容来自Rowan Miller对与此相关的Github问题的评论:

EnsureCreated完全绕开了迁移,只是为您创建了架构,您不能将其与迁移混在一起。确保创建是为了测试或快速原型设计的,您可以每次删除并重新创建数据库。如果您正在使用迁移,并希望在应用启动时自动应用它们,则可以context.Database.Migrate()改用。

我认为要点是,EnsureCreated它的功能等效于从早期版本的EF自动迁移,该功能也仅在您不尝试手动迁移时才起作用。本质上,这是一个“或/或”的事物。无论如何,请充分阅读该文章,以便您理解所有含义。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用实体框架7添加新迁移时,表未添加到数据库

来自分类Dev

使用实体框架将新对象的子集合和我的新对象添加到数据库中

来自分类Dev

实体框架-“从数据库更新”未添加表

来自分类Dev

实体框架将本地数据添加到数据库列表中

来自分类Dev

有没有一种方法可以使用实体框架将表添加到SQL CE数据库文件中?

来自分类Dev

如何使用实体框架将 WPF 文本框中的新文本值添加到数据库?

来自分类Dev

实体框架添加到我确定外键ID的数据库中

来自分类Dev

将列添加到数据库而不用实体框架在模型中定义它

来自分类Dev

使用数据库优先方法EF将新表添加到现有数据库

来自分类Dev

使用实体框架代码优先迁移添加数据库触发器

来自分类Dev

实体框架将数据添加到多重表

来自分类Dev

实体框架数据库优先不添加表

来自分类Dev

实体框架迁移更新数据库成功,但未添加数据库列

来自分类Dev

实体框架迁移更新数据库成功,但未添加数据库列

来自分类Dev

数据未添加到数据库SQLITE

来自分类Dev

在MVC实体框架中将数据库添加到web.config和外部数据模型edmx

来自分类Dev

验证和数据添加到数据库表

来自分类Dev

信息未添加到实时数据库?

来自分类Dev

派生列未添加到数据库

来自分类Dev

路径文件图片未添加到数据库

来自分类Dev

SQLite 项目未添加到数据库中

来自分类Dev

如何将新对象添加到现有实体,将数据放入数据中并让EF将其添加到我的数据库中?

来自分类Dev

如何在更新数据库后将属性添加到实体框架模型类而不丢失它们

来自分类Dev

将数据添加到数据库并使用JSON

来自分类Dev

SQL的.NET代码优先迁移:将迁移添加到现有数据库

来自分类Dev

YII文件上传未使用表单添加到数据库

来自分类Dev

来自数据库的实体框架更新模型未为tt类中的新添加表生成cs类

来自分类Dev

蛋糕3:如何将具有primaryKey设置的新实体添加到数据库?

来自分类Dev

将列从开发数据库表添加到生产数据库表

Related 相关文章

  1. 1

    使用实体框架7添加新迁移时,表未添加到数据库

  2. 2

    使用实体框架将新对象的子集合和我的新对象添加到数据库中

  3. 3

    实体框架-“从数据库更新”未添加表

  4. 4

    实体框架将本地数据添加到数据库列表中

  5. 5

    有没有一种方法可以使用实体框架将表添加到SQL CE数据库文件中?

  6. 6

    如何使用实体框架将 WPF 文本框中的新文本值添加到数据库?

  7. 7

    实体框架添加到我确定外键ID的数据库中

  8. 8

    将列添加到数据库而不用实体框架在模型中定义它

  9. 9

    使用数据库优先方法EF将新表添加到现有数据库

  10. 10

    使用实体框架代码优先迁移添加数据库触发器

  11. 11

    实体框架将数据添加到多重表

  12. 12

    实体框架数据库优先不添加表

  13. 13

    实体框架迁移更新数据库成功,但未添加数据库列

  14. 14

    实体框架迁移更新数据库成功,但未添加数据库列

  15. 15

    数据未添加到数据库SQLITE

  16. 16

    在MVC实体框架中将数据库添加到web.config和外部数据模型edmx

  17. 17

    验证和数据添加到数据库表

  18. 18

    信息未添加到实时数据库?

  19. 19

    派生列未添加到数据库

  20. 20

    路径文件图片未添加到数据库

  21. 21

    SQLite 项目未添加到数据库中

  22. 22

    如何将新对象添加到现有实体,将数据放入数据中并让EF将其添加到我的数据库中?

  23. 23

    如何在更新数据库后将属性添加到实体框架模型类而不丢失它们

  24. 24

    将数据添加到数据库并使用JSON

  25. 25

    SQL的.NET代码优先迁移:将迁移添加到现有数据库

  26. 26

    YII文件上传未使用表单添加到数据库

  27. 27

    来自数据库的实体框架更新模型未为tt类中的新添加表生成cs类

  28. 28

    蛋糕3:如何将具有primaryKey设置的新实体添加到数据库?

  29. 29

    将列从开发数据库表添加到生产数据库表

热门标签

归档