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

Bagaimana saya bisa memaksa kerangka kerja entitas untuk memasukkan kolom identitas?

EF 6 metode, menggunakan artikel msdn:

using (var dataContext = new DataModelContainer())
using (var transaction = dataContext.Database.BeginTransaction())
{
    var user = new User()
    {
        ID = id,
        Name = "John"
    };

    dataContext.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[User] ON");

    dataContext.User.Add(user);
    dataContext.SaveChanges();

    dataContext.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[User] OFF");

    transaction.Commit();
}

Pembaruan: Untuk menghindari kesalahan "Nilai eksplisit harus ditentukan untuk kolom identitas dalam tabel 'NamaTabel' baik ketika IDENTITY_INSERT diatur ke AKTIF atau ketika pengguna replikasi memasukkan ke dalam kolom identitas NOT FOR REPLICATION", Anda harus mengubah nilai StoreGeneratedPattern properti kolom identitas dari Identitas menjadi Tidak Ada dalam perancang model.

Catatan, mengubah StoreGeneratedPattern ke None akan gagal memasukkan objek tanpa id yang ditentukan (cara normal) dengan kesalahan "Tidak dapat memasukkan nilai eksplisit untuk kolom identitas dalam tabel 'NamaTabel' ketika IDENTITY_INSERT disetel ke OFF".



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana menjalankan prosedur tersimpan di sql server setiap jam?

  2. Menambahkan petunjuk kueri saat memanggil Fungsi Bernilai Tabel

  3. Memahami SQL Server Selalu Terenkripsi

  4. Cara Menemukan Item Daftar pada Posisi Tertentu di SQL Server

  5. Cara memasukkan data Excel atau CSV ke dalam Tabel dengan menggunakan Graphical User Interface di SQL Server - Tutorial SQL Server / TSQL Part 102