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.
|