Cerințe: Când EF folosește expresii linq to sql sau lambda pentru a interoga baza de date, instrucțiunile SQL generate de EF ne vor ajuta să adăugăm unele condiții IS NULL sau NOT NULL.
Exemplul 1:
Generează o instrucțiune SQL de acest fel:
ALEGE [Extinderea 2]. [StatusUtilizator] CA [UserStatus], [Extinderea 1]. [Id] CA [ID] DE la [dbo]. [InformațiiEmail] CA [Extinderea 1] INNER JOIN [dbo]. [Cont] CA [Extent2] PE ([Extinderea 1].[ Adresă] = [Extensie2]. [Email]) SAU (([Extinderea 1].[ Adresă] ESTE NULĂ) ȘI ([Extinderea 2].[ Email] ESTE NUL))
Exemplul 2:
Generează o instrucțiune SQL de acest fel:
ALEGE [Extinderea 1]. [Id] CA [Id], [Extinderea 1]. [Nume] CA [Nume], [Extinderea 1]. [ParentId] AS [ParentId], [Extinderea 1]. [Poziție] CA [Poziție], [Extinderea 1]. [_CreateTime] AȘA CUM [_CreateTime], [Extinderea 1]. [_UpdateTime] AȘA CUM [_UpdateTime] DE la [dbo]. [Clasificare] CA [Extinderea 1] UNDE ([Extinderea 1].[ Nume] IN (N'Android', N'Solaris')) ȘI ([Extent1].[ Nume] NU ESTE NUL)
Dacă doriți să evitați generarea acestor condiții NULL suplimentare de EF, puteți consulta următoarele.
Configurează proprietatea DbContextConfiguration.UseDatabaseNullSemantics
Primește sau setează o valoare care indică dacă se afișează semantica nulă a bazei de date atunci când se compară două operanzi și ambele sunt probabil să fie nule. Valoarea implicită este falsă.
Codul este următorul:
De exemplu: Dacă UseDatabaseNullSemantics este adevărat, atunci (operand1 == operand2) va fi convertit în (operand1 = operand2); Dacă UseDatabaseNullSemantics este fals, va fi convertit în (((operand1 = operand2) ȘI (NOT (operand1 ESTE NULL SAU operand2 ESTE NULL))) SAU ((operand1 ESTE NUL) ȘI (operand2 ESTE NUL))).
Documentație (Există o eroare în descrierea documentației):Autentificarea cu hyperlink este vizibilă.
câmpul pentru a adăuga atributul [Required]
După ce EF adaugă atributul [Required] la proprietatea obiectului, de fapt nu permite ca atributul (câmpul) să fie NULL în baza de date.După executarea comenzii de migrare, câmpul nu are voie să fie NULLDeoarece câmpul nu are voie să fie NULL în baza de date, EF nu generează în mod natural unele verificări NULL în instrucțiunile SQL generate pentru acel câmp.
Referință:Autentificarea cu hyperlink este vizibilă.
|