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

Hvordan sikrer jeg, at Linq til SQL ikke tilsidesætter eller overtræder ikke-nullable DB-standardværdier?

Linq-To-Sql-genererede klasser opfanger ikke standardværdikonstrianterne.

Måske i fremtiden, men problemet er, at begrænsninger ikke altid er simple værdier, de kan også være skalære funktioner som GetDate() , så linq skulle på en eller anden måde vide, hvordan man oversætter dem. Kort sagt, det prøver ikke engang. Det er også en meget databasespecifik type ting.

  • Du kan skrive en kodegenerator for at oprette entitetspartielle klasser, hvor du kan udtrække standardværdikonstrianten.
  • Alternativt kunne din virksomhedslagkode indstille standardindstillingerne i konstruktører fra en xml-fil, og alt du skal gøre er at holde xml-filen opdateret.
  • I stedet for at udføre arbejdet i konstruktører, kan du emulere sql og tilføje standardværdier ved at inspicere ChangeSet, før du sender ændringer til databasen.

Det problem, du har, er beskrevet udførligt i CodeProject - Indstilling af standardværdier for LINQ bundne data



  1. MySQL5.6 sidder fast i processen, der forsøger at starte tjenesten

  2. Postgres psql-outputstrenge uden escape-tegn

  3. Sådan gemmer du MSSQL PRINT-output til en variabel

  4. SQL Server 2008 Specificeret kolonne blev angivet flere gange