Entity Framework 迁移
Entity Framework Migration
大家好,我正在努力迁移 EntityFramework,目前,我已经启用了自动迁移。
我的软件是wpf-mvvm-ef代码优先SQL-server
但我想知道如何处理特定情况。
我在所有四台机器上安装我的软件读取服务器上的数据库。
我现在要发布我的应用程序的更新(在此更新中更改了数据库的结构)并且此更新将仅通过
对两台机器进行更新
Database.SetInitializer (new MigrateDatabaseToLatestVersion <SednaContext, Configuration> ());
他我自动更新db的结构
但是现在,如果我 运行 我的软件来自其他两台没有更新他的机器,我会自动 returns db 的结构(返回到旧的,因为在这两台机器上我有未安装更新)
我怎样才能避免做这一切?
This MSDN post说了如何做数据库迁移。
首先,运行 Package Manager Console
中的 Enable-Migrations
命令。它将在您的项目中添加一个 Migrations
文件夹,如下图所示。
注意:在Package Manager Console
中,Default project
应该是包含那些模型class的项目。
public Configuration()
{
AutomaticMigrationsEnabled = false;
}
如果你设置AutomaticMigrationsEnabled
为true
,那么当新的数据库迁移到来时,你不需要在Package Manager Console
中执行Add-Migration
。它会自动升级。但是我默认设置为false
。所以每次我修改我的模型,我都需要执行Add-Migration
,它会在Migrations
文件夹中生成一个class。 class 有两个函数,Up()
和 Down()
。 Up()
包含升级数据库到版本的代码,Down()
描述如何将新版本降级到旧版本。
希望这些信息对您有所帮助。
感谢您的回复,
这个方法我已经试过了,自动和手动都试过了
我的问题是另一个,entity framework如何识别最近需要更新数据库?
如果我在 4 台电脑上安装了我的软件。
但是我一开始只升级了两台电脑(所以我更新了数据库的模式)。
另外两个没电了。
如果几天后,我打开另外两台 PC(未升级的)并且我没有更新它们,只是 运行 软件检测到数据库中的变化并且它 return 的旧模式分贝
为此,我试图了解如何捕获正在更新的数据库架构版本。
希望说得更清楚
大家好,我正在努力迁移 EntityFramework,目前,我已经启用了自动迁移。
我的软件是wpf-mvvm-ef代码优先SQL-server
但我想知道如何处理特定情况。
我在所有四台机器上安装我的软件读取服务器上的数据库。
我现在要发布我的应用程序的更新(在此更新中更改了数据库的结构)并且此更新将仅通过
对两台机器进行更新
Database.SetInitializer (new MigrateDatabaseToLatestVersion <SednaContext, Configuration> ());
他我自动更新db的结构
但是现在,如果我 运行 我的软件来自其他两台没有更新他的机器,我会自动 returns db 的结构(返回到旧的,因为在这两台机器上我有未安装更新)
我怎样才能避免做这一切?
This MSDN post说了如何做数据库迁移。
首先,运行 Package Manager Console
中的 Enable-Migrations
命令。它将在您的项目中添加一个 Migrations
文件夹,如下图所示。
注意:在Package Manager Console
中,Default project
应该是包含那些模型class的项目。
public Configuration()
{
AutomaticMigrationsEnabled = false;
}
如果你设置AutomaticMigrationsEnabled
为true
,那么当新的数据库迁移到来时,你不需要在Package Manager Console
中执行Add-Migration
。它会自动升级。但是我默认设置为false
。所以每次我修改我的模型,我都需要执行Add-Migration
,它会在Migrations
文件夹中生成一个class。 class 有两个函数,Up()
和 Down()
。 Up()
包含升级数据库到版本的代码,Down()
描述如何将新版本降级到旧版本。
希望这些信息对您有所帮助。
感谢您的回复, 这个方法我已经试过了,自动和手动都试过了
我的问题是另一个,entity framework如何识别最近需要更新数据库?
如果我在 4 台电脑上安装了我的软件。 但是我一开始只升级了两台电脑(所以我更新了数据库的模式)。 另外两个没电了。 如果几天后,我打开另外两台 PC(未升级的)并且我没有更新它们,只是 运行 软件检测到数据库中的变化并且它 return 的旧模式分贝
为此,我试图了解如何捕获正在更新的数据库架构版本。
希望说得更清楚