Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Apakah ada cara saya bisa membuat tabel di SQL Server dan kemudian memperbarui migrasi ke proyek saya?

Jika tujuan utama Anda adalah membuat tabel terlebih dahulu di database dan kemudian secara otomatis memperbarui proyek Anda, maka Anda harus menggunakan Database First.

Yang mengatakan, Anda harus mempertimbangkan kelemahan Database Pertama:dalam pengalaman pribadi saya, saya berhenti menggunakan pendekatan itu terutama karena dua alasan:

  • Dukungan Database First akan dihentikan, sejauh yang saya tahu. EF Core tidak menyertakan alat editor. Beberapa tautan tentang ini:postingan dari Julie Lerman , peta jalan EF Core , dan pengumuman awal dari Microsoft .
  • Editor model memiliki beberapa bug dan kebiasaan yang menyebabkan kode terkadang rusak. Bug ini kemungkinan besar tidak akan diperbaiki (lihat poin sebelumnya). Hal-hal seperti mengubah jenis bidang yang ada, mengubah kunci asing, dll.
  • Saya memiliki banyak masalah karena penggabungan repositori kode sumber dari file entitas yang dibuat secara otomatis. Terutama (tetapi tidak hanya) ketika beberapa orang bekerja dengan entitas yang sama sehingga kami mendapatkan konflik gabungan dalam kode yang dibuat secara otomatis. Juga, kode yang dibuat secara otomatis terkadang tidak diperiksa dengan benar, sehingga tidak sinkron dengan edmx. Saya tidak yakin ini terjadi juga pada orang lain, tetapi tampaknya kadang-kadang Visual Studio, editor, alat pembuat kode otomatis latar belakang, dan pengelola kode sumber TFS tidak bekerja sama dengan baik.

Jadi, jika Anda benar-benar tidak dapat hidup tanpa membuat tabel terlebih dahulu di database, lanjutkan dengan Database First, tetapi Anda harus mempertimbangkan apa yang akan hilang jika Anda tidak menggunakan Code First. Pendekatan ini direkomendasikan secara luas karena suatu alasan.

Biasanya alasan utama orang yang menggunakan Database First saat ini adalah ketidakmungkinan untuk memigrasikan kode lama ke pendekatan Code First. Sejauh yang saya tahu, diterima secara luas bahwa Code First adalah cara yang tepat untuk melakukan sebaliknya. Di sini Anda memiliki postingan menarik tentang ini (walaupun agak lama, ditulis untuk EF 4.1, ketika Code First diperkenalkan, ini membahas pro dan kontra utama dari setiap pendekatan).

Solusi untuk Anda bisa tetap menggunakan Code First tetapi juga menggunakan alat yang tersedia yang secara otomatis menghasilkan entitas Code First Anda dengan melakukan rekayasa balik dari tabel database. Dengan ini Anda masih dapat membuat tabel Anda secara langsung di database, tetapi tetap menggunakan Code First dengan migrasi dan semuanya. Di sini Anda memiliki postingan dari Julie Lerman tentang beberapa alat tersebut . Mungkin ada alat yang lebih baru, tetapi saya belum pernah menggunakannya dan saya tidak tahu tentangnya.

Catatan:pengalaman pribadi saya dengan Database First agak buruk dan tidak bertahan lama. Mungkin seseorang dengan pengalaman yang lebih positif dalam pendekatan ini dapat memberikan wawasan yang lebih berguna tentang hal itu. Saya telah menggunakan Code First untuk sementara waktu sekarang dan sangat menyukai pendekatan ini. Jawaban saya mungkin agak bias.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gunakan Kasus untuk Pernyataan MERGE SQL Server:Menyinkronkan Tabel Online dan Riwayat

  2. Dapatkan rekor 'n' teratas menurut report_id

  3. SYSDATETIMEOFFSET() Contoh di SQL Server (T-SQL)

  4. Cara membagi string di SQL Server

  5. Rekursi CTE untuk mendapatkan hierarki pohon