Ani*_*ali 5 c# entity-framework sql-server-ce ef-code-first entity-framework-migrations
我创建了一个桌面应用程序,它使用SQL CE 4.0和具有Code First模式的实体 框架。所以,最初我在系统上安装了应用程序,它运行良好。
现在,我向模型类添加了一些属性,因此为此目的,我使用 启用了迁移Enable-Migrations
,并使用Add-Migration "MyMigration"
. 这也很成功,我能够安装新版本并升级数据库,没有任何问题。
但是现在,当我在没有现有数据库的系统上安装此设置时,它会失败,所以经过研究,我意识到我需要添加初始迁移所以,我撤销了模型中的更改,还删除了我的 SQLCE 数据库文件,添加了初始迁移,然后Update-Database
。因此,如果我尝试使用在未启用迁移的情况下创建的旧数据库来更新数据库,那么它会失败,它会尝试将初始迁移应用于数据库,但根据我的说法,它不应该这样做。
现在,如果我删除旧数据库文件,然后删除更新数据库,则会创建新数据库,然后再次将我的更改添加到模型并添加预期迁移。
因此,在此之后,周转我可以在空白系统上安装我的应用程序,但它在具有旧数据库的系统上失败,即它不会升级数据库。
它也尝试应用初始迁移,即再次创建所有表,但失败并提示“该表已存在,这是意外的”。
你需要的是
update-database
Run Code Online (Sandbox Code Playgroud)
这将相应地更新数据库。请记住,每次添加迁移时,您都需要更新数据库,而当您在其他地方安装系统时,您所需要做的就是更新数据库以使旧数据库与实体框架保持一致。
归档时间: |
|
查看次数: |
3841 次 |
最近记录: |