Krav: Når EF bruger linq to sql- eller lambda-udtryk til at forespørge databasen, vil de SQL-sætninger, der genereres af EF, hjælpe os med at tilføje nogle IS NULL eller NOT NULL-betingelser.
Eksempel 1:
Den genererer en SQL-sætning som denne:
MARKERE [Extent2]. [UserStatus] AS [UserStatus], [Omfang1]. [Id] AS [Id] FRA [dbo]. [EmailInfo] AS [Extent1] INNER JOIN [dbo]. [Konto] SOM [Extent2] ON ([Extent1].[ Adresse] = [Omfang2]. [Email]) ELLER (([Extent1].[ Adresse] ER NULL) OG ([Extent2].[ Email] ER NULL))
Eksempel 2:
Den genererer en SQL-sætning som denne:
MARKERE [Omfang1]. [Id] SOM [Id], [Omfang1]. [Navn] AS [Navn], [Omfang1]. [ParentId] AS [ParentId], [Omfang1]. [Position] AS [Position], [Omfang1]. [_CreateTime] SOM [_CreateTime], [Omfang1]. [_UpdateTime] SOM [_UpdateTime] FRA [dbo]. [Klassifikation] AS [Extent1] HVOR ([Extent1].[ Navn] IN (N'Android', N'Solaris')) OG ([Omfang1].[ Navn] ER IKKE NULL)
Hvis du vil undgå, at EF genererer disse yderligere NULL-betingelser, kan du henvise til følgende.
Konfigurér egenskaben DbContextConfiguration.UseDatabaseNullSemantics
Får eller sætter en værdi, der angiver, om databasens null-semantik skal vises, når to operander sammenlignes, og de er begge sandsynligvis null. Standardværdien er falsk.
Koden er som følger:
For eksempel: Hvis UseDatabaseNullSemantics er sand, vil (operand1 == operand2) blive konverteret til (operand1 = operand2); Hvis UseDatabaseNullSemantics er falsk, vil den blive konverteret til (((operand1 = operand2) OG (NOT (operand1 ER NULL ELLER operand2 ER NULL))) ELLER ((operand1 ER NULL) OG (operand2 ER NULL))).
Dokumentation (Der er en fejl i dokumentationsbeskrivelsen):Hyperlink-login er synlig.
felt for at tilføje attributten [Påkrævet]
Efter EF tilføjer attributten [Required] til objektegenskaben, tillader den faktisk ikke, at attributten (feltet) er NULL i databasen.Efter at have udført migrationskommandoen, må feltet ikke være NULLDa feltet ikke må være NULL i databasen, genererer EF naturligt ikke nogle NULL-kontroller i de SQL-sætninger, der genereres for det felt.
Henvisning:Hyperlink-login er synlig.
|