I'm trying to create database with Entity Framework Code first approach in my layered project structure. I use standart code-first console commands;
How can I execute this migration in layered structure? How are migration changes tracked?
You can check my code simply on github: https://github.com/srht/layeredIdentity
在github上的代码中;它曾经创建了init迁移,但在我删除数据库之后它又没有创建这样的初始迁移代码。
答案 0 :(得分:0)
......只有上下方法......
这就是迁移的工作方式,当您执行> Traceback (most recent call last): File "<stdin>", line 1, in
> <module> File
> "/usr/local/lib/python3.4/dist-packages/dropbox/__init__.py", line 3,
> in <module>
> from .dropbox import __version__, Dropbox, DropboxTeam, create_session File
> "/usr/local/lib/python3.4/dist-packages/dropbox/dropbox.py", line 19,
> in <module>
> from . import files, stone_serializers File "/usr/local/lib/python3.4/dist-packages/dropbox/files.py", line 8, in
> <module>
> from . import stone_validators as bv File "/usr/local/lib/python3.4/dist-packages/dropbox/stone_validators.py",
> line 21, in <module>
> from typing import Optional ImportError: No module named 'typing'
时,始终存在隐式源迁移和目标迁移,因此EF会逐步应用这两个源和目标迁移之间的所有Up方法(或者Down)方法,如果您降级数据库)。 EF生成要为每次迁移应用的SQL代码,如果要查看它,可以使用Update-Database
参数运行Update-Database
。这样就不会执行任何更改,您可以检查生成的SQL。
如何跟踪迁移更改?
有一个名为-script
的表。在该表中运行__MigrationsHistory
EF插入时,应用的每个迁移的记录。下次更改模型类的代码时,必须通过运行Update-Database
生成新的增量迁移。运行时Add-Migration YourNewMigrationName
EF会检测自上次上次迁移以来模型中的增量更改,并生成仅包含这些更改的新迁移。迁移文件名包含一个时间戳,以便及时订购。
如果您运行Add-Migration
并且没有任何反应,那是因为您的数据库是最新的,所有待处理的迁移都已应用。您应该在控制台中收到一些消息,告诉他们不要应用明确的迁移&#34;或类似的东西。如果您收到有关仍有待处理迁移或其他错误消息的其他消息,则表明出现了问题。
Here您可以从Msdn获得有关迁移工作方式的更多信息。