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