LINQ to SQL: изменить таблицу или добавить новую таблицу в существующую базу данных - PullRequest
2 голосов
/ 12 января 2011

Позволяет ли LINQ to SQL изменять таблицы аналогично способу создания таблиц DataContext.CreateDatabase()?

Я знаю, что модифицировать базу данных - это плохая практика, однако новая информациявозможно, потребуется добавить в нашу структуру данных.Я задавался вопросом, допускает ли LINQ to SQL принудительную систему для изменения существующих таблиц?

Если для этой функции нет встроенного класса LINQ to SQL, каков наилучший способ приблизиться к этому?

Обновление:

Похоже, что это невозможно.Я попросил добавить новую функцию в .NET Framework.Проголосуйте за него, если вы также заинтересованы: connect.microsoft.com Запрос о функции .

Также см. Вопрос Можно ли использовать Linq для ALTERтаблицу базы данных? .

Ответы [ 4 ]

1 голос
/ 12 января 2011

Я не знаю, как это сделать ... Я думаю, учитывая, что LINQ пытается абстрагировать структуру базы данных, это, вероятно, не правильный инструмент.соединение с базой данных и выполнение операторов ALTER TABLE для необработанной базы данных.

0 голосов
/ 18 декабря 2012

способ выполнить передачу - это сделать инструмент

1. - инструмент должен знать старую схему базы данных 2. - инструмент должен знать новую схему базы данных

с этим простосделайте методы для обновления базы данных, здесь пример

    table Person (old)          table Person (new)
     id                           id
     name                         name
                                  age

, затем выберите все из старой базы данных и затем создайте новые строки в обновленной базе данных

    new person {
       id=oldPerson.id;
       name=oldPerson.name
        age=defaultAge;
       }
0 голосов
/ 12 января 2011

Ознакомьтесь с замечательной статьей Пола Стовелла о Как развернуть базу данных .Я также использовал SQL Deploy для большого успеха в прошлом.

0 голосов
/ 12 января 2011

Я думаю, что термин для того, что вы ищете, это «миграция базы данных», популяризируемая ruby ​​on rails.Для .Net существует MigratorDotNet .Он вообще не привязан к Linq To SQL (или любому другому ORM), но может помочь с тем, чего вы хотите достичь.

Вот некоторые другие реализации для .Net

...