【问题标题】:Can you instruct EF to ignore tables that already exist你能指示 EF 忽略已经存在的表吗
【发布时间】:2015-11-19 12:49:35
【问题描述】:

我的应用程序有一个使用 Autofac 注入的上下文。我也有在同一个数据库上创建和维护自己的上下文的插件。我现在将它们全部内联,以便插件只使用主要上下文。

我现在面临的问题是因为表已经存在于数据库中,我不能update-database 因为它说PluginTable 已经存在于数据库中。我不能执行 add-migration 然后删除 Up / Down 条目,因为插件不在同一个项目中。

注意:我认为这只是一个问题,因为表已经存在,所以我需要更新当前的迁移条目,这样它就不会尝试重新创建表。

注意:我考虑过重新构建迁移文件,但同样的问题会发生,因为添加迁移不起作用。

我不知道发布什么代码会对此有所帮助,但我只是想知道我们是否可以告诉 ef 忽略其创建过程中已经存在的表(这听起来很愚蠢,因为我键入它但我不知道还能做什么)。

编辑:也许我应该问的问题是如何让add-migration 记录其他项目,这样我就可以进行空白添加迁移并更新迁移文件

【问题讨论】:

  • Afaik 你不能在 Entity Framework 的同一个项目中拥有代码优先和数据库优先。你不能在单独的项目中做吗?
  • 您的意思是在每个插件上也启用迁移并专门添加迁移吗?

标签: c# ef-code-first entity-framework-6 entity entity-framework-migrations


【解决方案1】:

不确定您所说的无法添加迁移是什么意思,但如果您需要运行迁移来建立基线:

Add-Migration MyBaseline –IgnoreChanges 

https://msdn.microsoft.com/en-us/data/dn579398.aspx?f=255&MSPPError=-2147217396#option1

【讨论】:

  • 我在每个插件上启用了迁移,并根据插件管理它们,然后在第一次迁移时,我运行这个命令来更新它。太好了,谢谢(比创建迁移和删除上/下代码更好)。
猜你喜欢
  • 2011-10-31
  • 2021-09-20
  • 2011-10-25
  • 1970-01-01
  • 1970-01-01
  • 2016-07-13
  • 2019-04-12
  • 2019-01-24
  • 1970-01-01
相关资源
最近更新 更多