Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 3654|Vastaus: 0

[Lähde] EF SQL -lauseet tuottavat automaattisesti IS NULL tai IS NOT NULL

[Kopioi linkki]
Julkaistu 21.6.2023 22.42.18 | | | |
Vaatimukset: Kun EF käyttää linq to sql- tai lambda-lausekkeita tietokannan kyselyyn, EF:n generoimat SQL-lauseet auttavat lisäämään joitakin IS NULL tai NOT NULL -ehtoja.

Esimerkki 1:

Se generoi SQL-lauseen näin:

VALIKOIDA
    [Extent2]. [KäyttäjäTila] AS [UserStatus],
    [Laajuus1]. [Id] AS [Id]
    FROM [dbo]. [EmailInfo] AS [Laajuus1]
    INNER JOIN [dbo]. [Tili] AS [Extent2] ON ([Extent1].[ Osoite] = [Laajuus2]. [Sähköposti]) TAI (([Extent1].[ Osoite] ON NULL) ja ([Extent2].[ Sähköposti] ON NOLLA))



Esimerkki 2:

Se generoi SQL-lauseen näin:

VALIKOIDA
    [Laajuus1]. [id] AS [id],
    [Laajuus1]. [Nimi] AS [Nimi],
    [Laajuus1]. [ParentId] AS [ParentId],
    [Laajuus1]. [Sijainti] AS [Asema],
    [Laajuus1]. [_CreateTime] AS [_CreateTime],
    [Laajuus1]. [_UpdateTime] AS [_UpdateTime]
    FROM [dbo]. [Luokitus] AS [Laajuus1]
    MISSÄ ([Extent1].[ Nimi] IN (N'Android', N'Solaris')) JA ([Extent1].[ Nimi] EI OLE MITÄTÖN)



Jos haluat välttää EF:n tuottamasta näitä lisäNULL-ehtoja, voit viitata seuraaviin.

Määritä DbContextConfiguration.UseDatabaseNullSemantics -ominaisuus

Saa tai asettaa arvon, joka kertoo, näytetäänkö tietokannan null-semantiikka verrattaessa kahta operandia, ja molemmat ovat todennäköisesti nollaa. Oletusarvo on väärin.

Koodi on seuraava:


Esimerkiksi:
Jos UseDatabaseNullSemantics on tosi, niin (operand1 == operand2) muunnetaan muotoon (operand1 = operand2);
Jos UseDatabaseNullSemantics on epätosi, se muunnetaan muotoon ((operand1 = operand2) JA (NOT (operand1 ON NULL TAI operand2 ON NULL))) TAI ((operand1 ON NULL) JA (operand2 ON NULL))).

Dokumentaatio (Dokumentaation kuvauksessa on virhe):Hyperlinkin kirjautuminen on näkyvissä.

kenttä lisätäkseen [Vaaditaan] attribuutin

Kun EF lisää [Vaaditaan] attribuutin objektiominaisuuteen, se ei itse asiassa salli attribuutin (kentän) olla NULL tietokannassa.Migraatiokäskyn suorittamisen jälkeen kenttä ei saa olla NULLKoska kenttä ei saa olla NULL tietokannassa, EF ei luonnollisesti tuota joitakin NULL-tarkistuksia kyseiselle kentälle luoduissa SQL-lauseissa.

Viittaus:Hyperlinkin kirjautuminen on näkyvissä.






Edellinen:ASP.NET Core (kaksikymmentäyksi) -konfiguraatioasetukset ovat ero AddOptionsin ja Configin välillä
Seuraava:Verkkokehityksen ajax-hook sieppaa kaikki XMLHttpRequest-pyynnöt
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com