sql >> Database teknologi >  >> RDS >> Sqlserver

Kan LINQ-til-SQL udelade uspecificerede kolonner ved indsættelse, så der bruges en databasestandardværdi?

Desværre understøtter Linq til SQL ikke databasestandardværdier. Se det første spørgsmål her:

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

Det, de foreslår, er, at du leverer en implementering af Insert-metoden for den pågældende enhed. Signaturen er

partial void Insert[EntityName](Entity instance)

Så hvis du havde en enhed kaldet Person, som du ønskede at have standardværdien "Hjem" for et PhoneNumberDesc-felt, kunne du implementere det på denne måde:

    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());
    }

Du kan muligvis slippe afsted med at implementere OnCreated-hændelsen, som kaldes med hver konstruktør for hver enhed. Denne artikel forklarer lidt om, hvordan udvidelsesmulighederne peger i Linq To SQL:http://msdn.microsoft.com/en-us/library/bb882671.aspx

Alt i alt er løsningen virkelig elendig. Held og lykke!



  1. MySQL-lagrede funktioner - Dynamiske/variable tabel- og kolonnenavne

  2. Hvad betyder tallet i parentes egentlig?

  3. Brug af arbejdsgangsmønstre til at administrere enhver enheds tilstand

  4. Python Pandas skriver til sql med NaN-værdier