Изменение DBML, как изменить базу данных SQL?

Приложения с этим использует базу данных SQL. Приложение уже выпущено, но теперь я работаю над обновлением. В обновлении я добавил дополнительный столбец в таблице моей базы данных.

Я имею, создают базу данных из моего DMBL использование DataContext. CreateDatabase () (не наоборот, поскольку я узнал, чтобы быть более общим сценарием позже),

Я там средство в LINQ, в котором я могу обновить свою схему базы данных SQL?

7
задан Robbert Dam 26 March 2010 в 08:16
поделиться

2 ответа

Нет, извините. Я тоже хотел бы иметь такую ​​возможность. Вы должны обновить свою базу данных вручную.

Вот метод:

  • Создайте хранимую процедуру под названием «spGetDBVersion». Эта процедура просто возвращает целое число вашей текущей развернутой версии базы данных.
  • При запуске / установке проверьте эту процедуру, если ее результат соответствует версии, ожидаемой вашей программой.
  • Если нет -> выполните скрипты обновления в правильном порядке. Пример: если spGetDBVersion возвращает 2, а ваше приложение ожидает 5, вам нужно выполнить Update_To_3.sql, Update_To_4.sql и Update_To_5.sql

Подсказка: после первоначального выпуска я никогда не меняю схему своей базы данных с помощью инструмента. Я всегда записываю это изменение и кладу его в свой сценарий следующего обновления.

Не то, что вы просили, но это практическое решение.

UpdateScript может выглядеть так:

** PSEUDOCODE **

-- Update to version 2
alter table [MyTable] add newColumn int null
GO
update [MyTable] set [newColumn] = 0
GO
alter table [MyTable] change newColumn int not null
GO
alter procedure spGetDBVersion
as
begin
    select 2 as CurrentVersion
end
1
ответ дан 7 December 2019 в 20:35
поделиться

Если вы измените свою таблицу в базе данных, вы должны удалить соответствующую таблицу из файла dbml. Добавьте ее снова, и файл dbml должен сгенерироваться заново снова, чтобы ваши изменения вступили в силу.

0
ответ дан 7 December 2019 в 20:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: