Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 3654|Válasz: 0

[Forrás] Az EF SQL utasítások automatikusan generálják az IS NULL vagy IS NOT NULL

[Linket másol]
Közzétéve 2023. 06. 21. 22:42:18 | | | |
Követelmények: Amikor az EF linq-to-sql vagy lambda kifejezéseket használ az adatbázis lekérdezéséhez, az EF által generált SQL utasítások segítenek hozzáadni néhány IS NULL vagy NOT NULL feltételt.

1. példa:

Így generál egy SQL utasítást:

KIVÁLASZT
    [Extent2]. [UserStatus] AS [UserStatus],
    [Mérték1]. [Id] AS [Id]
    FROM [dbo]. [EmailInfo] AS [Kiterjedtség1]
    INNER JOIN [dbo]. [Számla] AS [Extent2] ON ([Extent1].[ cím] = [Mérték2]. [Email]) VAGY (([Extent1].[ cím] IS NULL) ÉS ([Extent2].[ E-mail] NULLA))



2. példa:

Így generál egy SQL utasítást:

KIVÁLASZT
    [Mérték1]. [Id] AS [Id],
    [Mérték1]. [Név] AS [Név],
    [Mérték1]. [ParentId] AS [ParentId],
    [Mérték1]. [Pozíció] AS [pozíció],
    [Mérték1]. [_CreateTime] MINT [_CreateTime],
    [Mérték1]. [_UpdateTime] MINT [_UpdateTime]
    FROM [dbo]. [Osztályozás] AS [Kiterjedtség1]
    AHOL ([Extent1].[ Név] IN (N'Android', N'Solaris')) ÉS ([Extent1].[ Név] NEM ÉRÉR)



Ha el akarod kerülni, hogy az EF generálja ezeket a további NULL feltételeket, hivatkozhatsz a következőkre.

Konfiguráld a DbContextConfiguration.UseDatabaseNullSemantics tulajdonságot

Olyan értéket kap vagy állít be, amely jelzi, hogy két operandot összehasonlítva nézzük-e meg az adatbázis null szemantikája, és valószínűleg mindkettő null. Az alapértelmezett érték hamis.

A kódex a következő:


Például:
Ha a UseDatabaseNullSemantics igaz, akkor (operand1 == operand2) átalakul (operand1 = operand2);
Ha a UseDatabaseNullSemantics hamis, akkor átalakítják (((operand1 = operand2) AND (NOT (operand1 NULL VAGY operand2 NULL))) vagy (((operand1 NULL) ÉS (operand2 NULL))).

Dokumentáció (Hiba van a dokumentációs leírásban):A hiperlink bejelentkezés látható.

mező hozzáadásához a [Szükséges] attribútumhoz

Miután az EF hozzáadja a [Required] attribútumot az objektum tulajdonságához, valójában nem engedi, hogy az attribútum (mező) NULL legyen az adatbázisban.A migrációs parancs végrehajtása után a mező nem lehet NULLMivel a mező nem NULL lehet az adatbázisban, az EF természetesen nem generál bizonyos NULL próbákat az adott mezőhöz generált SQL utasításokban.

Utalás:A hiperlink bejelentkezés látható.






Előző:ASP.NET Core (huszonegy) konfigurációs opciók a különbség az AddOptions és a Configure között
Következő:Az ajax-hook webfejlesztéshez minden XMLHttpRequest kérést elfog.
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com