0

假设您向客户发送了一个新的应用程序版本,并且您需要更新本地客户数据库,例如它的 SQL microsoft 数据库 2008。

  • 现在我通过数据库中的版本表来执行此操作,并运行 sql 脚本。- 匹配那个版本,比如:

        if (DatabaseVersion < Common_func.ProgramDBFixVersion)
        {
            switch (DatabaseVersion)
            {
                case 0:
                    if (Fix0() == false) NoErrorFixFlg = false;
                    goto case 1;
    
                case 1:
                    if (Fix1() == false) NoErrorFixFlg = false;
                    goto case 2;
                    .  
                    .
                    .
    
    private static bool Fix1()
    {
    
        try
        {
            var conn = new SqlConnection(Utils.ConnectionString);
            conn.Open();
            ExecSql(conn, "ALTER TABLE Customer ADD Is_Deleted [bit] NULL");
            conn.Close();
        }
        catch (Exception ex)
        {
          retrun false;
        }
        return true;
    }
    

这项工作很好,但是在实体框架中是否有任何真正的内置支持。

没有任何数据丢失!

如果是这样 - 你能举一些具体的例子如何正确地做到这一点。

非常感谢!

4

1 回答 1

5

查看迁移:http: //blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-code-based-migrations-walkthrough.aspx

在没有自动更新的情况下使用时,每个迁移/更改都创建在一个带有脚本更改和回滚的文件中

于 2012-02-24T08:43:17.053 回答