Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 3654|Odpoveď: 0

[Zdroj] EF SQL príkazy automaticky generujú IS NULL alebo IS NOT NULL

[Kopírovať odkaz]
Zverejnené 21. 6. 2023 22:42:18 | | | |
Požiadavky: Keď EF použije linq to sql alebo lambda výrazy na dotazovanie databázy, SQL príkazy generované EF nám pomôžu pridať niektoré podmienky IS NULL alebo NOT NULL.

Príklad 1:

Generuje SQL príkaz takto:

VYBRAŤ
    [Extent2]. [UserStatus] AS [UserStatus],
    [Extent1]. [Id] AS [Id]
    FROM [dbo]. [EmailInfo] AS [Extent1]
    INNER JOIN [dbo]. [Účet] AS [Extent2] NA ([Extent1].[ Adresa] = [Rozsah2]. [Email]) ALEBO (([Extent1].[ Adresa] JE NULOVÁ) A ([Extent2].[ Email] JE NULL))



Príklad 2:

Generuje SQL príkaz takto:

VYBRAŤ
    [Extent1]. [Id] AS [Id],
    [Extent1]. [Meno] AS [Meno],
    [Extent1]. [ParentId] AS [ParentId],
    [Extent1]. [Pozícia] AS [Pozícia],
    [Extent1]. [_CreateTime] AKO [_CreateTime],
    [Extent1]. [_UpdateTime] AKO [_UpdateTime]
    FROM [dbo]. [Klasifikácia] AS [Extent1]
    KDE ([Extent1].[ Meno] IN (N'Android', N'Solaris')) A ([Extent1].[ Meno] NIE JE NULL)



Ak chcete zabrániť tomu, aby EF generoval tieto ďalšie NULL podmienky, môžete sa pozrieť na nasledujúce.

Konfigurujte vlastnosť DbContextConfiguration.UseDatabaseNullSemantics

Získa alebo nastaví hodnotu, ktorá určuje, či má pri porovnaní dvoch operandov zobraziť nulovú sémantiku databázy, pričom oba sú pravdepodobne nulové. Predvolená hodnota je nepravdivá.

Kód je nasledovný:


Napríklad:
Ak platí UseDatabaseNullSemantics, potom (operand1 == operand2) sa prevedie na (operand1 = operand2);
Ak je UseDatabaseNullSemantics nepravdivý, bude prevedený na (((operand1 = operand2) A (NOT (operand1 JE NULL ALEBO operand2 JE NULL))) ALEBO (operand1 JE NULL) A (operand2 JE NULL))).

Dokumentácia (V popise dokumentácie je chyba):Prihlásenie na hypertextový odkaz je viditeľné.

pole na pridanie atribútu [Povinné]

Po pridaní atribútu [Required] do vlastnosti objektu EF v skutočnosti nedovolí, aby atribút (pole) bol v databáze NULL.Po vykonaní príkazu na migráciu nie je pole povolené byť NULLKeďže pole nesmie byť v databáze NULL, EF prirodzene negeneruje niektoré NULL kontroly v SQL príkazoch generovaných pre dané pole.

Referencia:Prihlásenie na hypertextový odkaz je viditeľné.






Predchádzajúci:ASP.NET Konfigurácia jadra (dvadsaťjeden) je rozdiel medzi AddOptions a Configure
Budúci:Ajax-hook pre webový vývoj zachytáva všetky požiadavky XMLHttpRequest
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com