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

Bisakah LINQ-to-SQL menghilangkan kolom yang tidak ditentukan pada sisipan sehingga nilai default basis data digunakan?

Sayangnya, Linq to SQL tidak mendukung nilai default database. Lihat pertanyaan pertama di sini:

http:// social.msdn.microsoft.com/forums/en-US/linqprojectgeneral/thread/3ae5e457-099e-4d13-9a8b-df3ed4ba0bab/

Apa yang mereka sarankan adalah Anda menyediakan implementasi metode Sisipkan untuk entitas yang dimaksud. Tanda tangannya adalah

partial void Insert[EntityName](Entity instance)

Jadi, jika Anda memiliki entitas bernama Person, yang ingin memiliki nilai default "Home" untuk bidang PhoneNumberDesc, Anda dapat menerapkannya dengan cara ini:

    partial void InsertPerson(Person instance)
    {
        if (string.IsNullOrEmpty(instance.PhoneNumberDesc))
            instance.PhoneNumberDesc = "Home";

        var insertParams = new List<object>();
        var insertStatement = "insert into ...";

        // build the rest of the insert statement and fill in the parameter values here...

        this.ExecuteQuery(typeof(Person), insertStatement, insertParams.ToArray());
    }

Anda mungkin bisa lolos dengan mengimplementasikan acara OnCreated, yang dipanggil dengan setiap konstruktor untuk setiap entitas. Artikel ini menjelaskan sedikit tentang bagaimana poin ekstensibilitas di Linq To SQL:http://msdn.microsoft.com/en-us/library/bb882671.aspx

Secara keseluruhan, solusinya agak menyebalkan. Semoga berhasil!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lewati tabel sebagai parameter ke sql server UDF

  2. Bagaimana cara mengambil data dari database SQL Server di C#?

  3. Parameter Sniffing (atau Spoofing) di SQL Server

  4. Cara Mengaktifkan Semua CEK &Batasan Kunci Asing dalam Database di SQL Server (Contoh T-SQL)

  5. Cara membuat banyak satu ke satu