Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 3654|Svar: 0

[Kilde] EF SQL-sætninger genererer automatisk ER NULL eller ER IKKE NULL

[Kopier link]
Opslået på 21/06/2023 22.42.18 | | | |
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.






Tidligere:ASP.NET Core (enogtyve) konfigurationsmuligheder er forskellen mellem AddOptions og Configure
Næste:Ajax-hooken til webudvikling opfanger alle XMLHttpRequest-forespørgsler
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com