Встроенная поддержка в Entity Framework для автоматического обновления базы данных программно?(без потери данных) - PullRequest
0 голосов
/ 24 февраля 2012

Скажем, вы отправляете новую версию приложения клиенту, и вам нужно обновить локальную базу данных клиентов, скажем, это база данных Microsoft SQL Server 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;
    }
    

Это хорошо работает, но есть ли реальная встроенная поддержка для этого в Entity Framework.

без каких-либопотеря данных!

Если да, то можете ли вы привести конкретный пример того, как это можно сделать правильно.

Большое вам спасибо!

1 Ответ

5 голосов
/ 24 февраля 2012

Проверить миграции: http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-code-based-migrations-walkthrough.aspx

При использовании без автоматического обновления каждая миграция / изменение создается в файле со сценариями изменений и откатов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...