sql >> Databasteknik >  >> RDS >> Sqlserver

Hur säkerställer jag att Linq till SQL inte åsidosätter eller bryter mot icke-nullbara DB-standardvärden?

Linq-To-Sql-genererade klasser hämtar inte standardvärdekonstrianterna.

Kanske i framtiden, men problemet är att begränsningar inte alltid är enkla värden, de kan också vara skalära funktioner som GetDate() , så linq skulle på något sätt behöva veta hur man översätter dem. Kort sagt, det försöker inte ens. Det är också en mycket databasspecifik typ av sak.

  • Du kan skriva en kodgenerator för att skapa entitetspartiella klasser där du kan extrahera standardvärdekonstrianten.
  • Alternativt kan din affärslagerkod ställa in standardinställningarna i konstruktörer från en xml-fil, och allt du behöver göra är att hålla xml-filen uppdaterad.
  • Istället för att göra jobbet i konstruktörer kan du emulera SQL och lägga till standardvärden genom att inspektera ChangeSet innan du skickar ändringar till databasen.

Problemet du har beskrivs utförligt i CodeProject - Ställa in standardvärden för LINQ-bundna data



  1. Få storleken på en databas i MariaDB

  2. Oracle SQL Regex returnerar inte förväntade resultat

  3. Vad är det bästa sättet att lagra en historisk prislista i en MySQL-tabell?

  4. Naturlig koppling i SQL Server