Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 3654|Atbildi: 0

[Avots] EF SQL priekšraksti automātiski ģenerē IS NULL vai IS NOT NULL

[Kopēt saiti]
Publicēts 21.06.2023 22:42:18 | | | |
Prasības: Ja EF izmanto linq to sql vai lambda izteiksmes, lai vaicātu datu bāzē, EF ģenerētie SQL priekšraksti palīdzēs mums pievienot dažus IS NULL vai NOT NULL nosacījumus.

1. piemērs:

Tas ģenerē šādu SQL priekšrakstu:

ATLASIET
    [2. apjoms]. [Lietotāja statuss] AS [UserStatus],
    [Apjoms1]. [id] AS [id]
    NO [dbo]. [E-pasta informācija] AS [1. apjoms]
    IEKŠĒJAIS SAVIENOJUMS [dbo]. [Konts] AS [Extent2] ON ([Extent1].[ Adrese] = [2. apjoms]. [E-pasts]) OR (([Apjoms1].[ Adrese] IR NULL) UN ([apjoms2].[ E-pasts] IR NULL))



2. piemērs:

Tas ģenerē šādu SQL priekšrakstu:

ATLASIET
    [Apjoms1]. [id] AS [id],
    [Apjoms1]. [Vārds] AS [nosaukums],
    [Apjoms1]. [Vecāku ID] AS [ParentId],
    [Apjoms1]. [Amats] AS [Amats],
    [Apjoms1]. [_CreateTime] AS [_CreateTime],
    [Apjoms1]. [_UpdateTime] AS [_UpdateTime]
    NO [dbo]. [Klasifikācija] AS [1. apjoms]
    WHERE ([Apjoms1].[ Nosaukums] IN (N'Android', N'Solaris')) UN ([Extent1].[ Nosaukums] NAV NULL)



Ja nevēlaties izvairīties no šo papildu NULL nosacījumu ģenerēšanas, varat skatīt tālāk norādīto.

Rekvizīta DbContextConfiguration.UseDatabaseNullSemantics konfigurēšana

Iegūst vai iestata vērtību, kas norāda, vai, salīdzinot divus operandus, jāparāda datu bāzes nulles semantika, un abi, visticamāk, būs nulles. Noklusējuma vērtība ir false.

Kods ir šāds:


Piemēram:
Ja UseDatabaseNullSemantics ir patiess, tad (operand1 == operand2) tiks konvertēts uz (operand1 = operand2);
Ja UseDatabaseNullSemantics ir false, tas tiks konvertēts uz (((operand1 = operand2) AND (NOT (operand1 IS NULL OR operand2 IS NULL))) vai ((operand1 IS NULL) UN (operand2 IS NULL))).

Dokumentācija (Dokumentācijas aprakstā ir kļūda):Hipersaites pieteikšanās ir redzama.

, lai pievienotu atribūtu [Obligāti]

Pēc tam, kad EF objekta rekvizītam pievieno atribūtu [Required], tas faktiski neļauj atribūtam (laukam) datu bāzē būt NULL.Pēc migrācijas komandas izpildes lauks nedrīkst būt NULLTā kā laukam datu bāzē nav atļauts būt NULL, EF, protams, neģenerē dažas NULL pārbaudes šim laukam ģenerētajos SQL priekšrakstos.

Atsauce:Hipersaites pieteikšanās ir redzama.






Iepriekšējo:ASP.NET Core (divdesmit viena) konfigurācijas opcijas ir atšķirība starp AddOptions un Configure
Nākamo:Tīmekļa izstrādes ajax-āķis pārtver visus XMLHttpRequest pieprasījumus
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com