Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Има ли някакъв начин, по който мога просто да създам таблица в SQL Server и след това да актуализирам миграцията към моя проект?

Ако основната ви цел е първо да създадете таблиците в базата данни и след това автоматично да актуализирате проекта си, тогава трябва да използвате Database First.

Въпреки това, трябва да имате предвид недостатъците на Database First:в моя личен опит спрях да използвам този подход главно поради две причини:

  • Поддръжката на Database First ще бъде прекратена, доколкото знам. EF Core не включва инструмента за редактор. Някои връзки за това:публикация от Джули Лерман , пътната карта на EF Core и ранно съобщение от Microsoft .
  • Редакторът на модела имаше няколко грешки и странности, които караха кода да се разваля от време на време. Тези грешки най-вероятно просто няма да бъдат коригирани (вижте предишната точка). Неща като промяна на типа на съществуващо поле, промяна на външни ключове и др.
  • Имах много проблеми поради сливания на хранилище за изходен код на автоматично генерираните файлове на обекти. Особено (но не само), когато няколко души работеха с едни и същи обекти, така че получавахме конфликти при сливане в автоматично генерирания код. Освен това автоматично генерираният код понякога не се изваждаше правилно, така че се разпадна в синхрон с edmx. Не съм сигурен, че това се случва и на други хора, но изглежда, че понякога Visual Studio, редакторът, инструментът за автоматично генериране на фонов код и мениджърът на изходния код на TFS просто не работят добре заедно.

Така че, ако наистина не можете да живеете без първо да създадете таблиците в базата данни, продължете с Database First, но трябва да помислите какво губите, ако не използвате Code First. Този подход е широко препоръчван по причина.

Обикновено основната причина хората, които използват Database First в днешно време, е невъзможността за мигриране на наследения код към подхода Code First. Доколкото знам, широко се приема, че Code First е правилният начин да се върви в противен случай. Тук имате интересна публикация за това (дори и да е малко стар, написан за EF 4.1, когато Code First беше въведен, той се занимава с основните плюсове и минуси на всеки подход).

Заобиколно решение за вас може да бъде да продължите да използвате Code First, но също така да използвате наличните инструменти, които автоматично генерират вашите обекти Code First чрез обратно инженерство от таблиците на базата данни. С това все още можете да генерирате вашите таблици директно в базата данни, но продължете да използвате Code First с миграции и всичко останало. Тук имате публикация от Julie Lerman за някои от тези инструменти . Може да има по-нови инструменти, но не съм ги използвал и не знам за тях.

Забележка:личният ми опит с Database First беше доста лош и не продължи твърде дълго. Може би някой с по-положителен опит в този подход би могъл да даде по-полезна представа за него. Използвам Code First от известно време и наистина предпочитам този подход. Моят отговор може да е малко пристрастен.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server:разлика в дните за две дати в отделни редове

  2. Как мога да получа списък с имена на елементи от XML стойност в SQL Server

  3. T-SQL - Псевдоним с помощта на =срещу as

  4. Генериране на последователност в sql сървър

  5. SQL Server съобщава „Невалидно име на колона“, но колоната присъства и заявката работи чрез студио за управление