See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 3654|Vastuse: 0

[Allikas] EF SQL laused genereerivad automaatselt IS NULL või EI OLE NULL

[Kopeeri link]
Postitatud 21.06.2023 22:42:18 | | | |
Nõuded: Kui EF kasutab andmebaasi pärimiseks linq to sql või lambda avaldisi, aitavad EF-i genereeritud SQL-laused lisada mõningaid IS NULL või NOT NULL tingimusi.

Näide 1:

See genereerib SQL-lause järgmiselt:

VALIMA
    [Extent2]. [KasutajaStaatus] AS [UserStatus],
    [Ulatus1]. [Id] AS [Id]
    FROM [dbo]. [EmailInfo] AS [Ulatus1]
    INNER JOIN [dbo]. [Konto] AS [Extent2] PEAL ([Extent1].[ Aadress] = [Ulatus2]. [E-post]) VÕI (([Extent1].[ Aadress] ON NULL) ja ([Extent2].[ E-post] ON NULL))



Näide 2:

See genereerib SQL-lause järgmiselt:

VALIMA
    [Ulatus1]. [id] AS [id],
    [Ulatus1]. [Nimi] AS [Nimi],
    [Ulatus1]. [ParentId] AS [ParentId],
    [Ulatus1]. [Positsioon] AS [Positsioon],
    [Ulatus1]. [_CreateTime] AS [_CreateTime],
    [Ulatus1]. [_UpdateTime] KUI [_UpdateTime]
    FROM [dbo]. [Klassifikatsioon] AS [Ulatus1]
    KUS ([Extent1].[ Nimi] IN (N'Android', N'Solaris')) JA ([Extent1].[ Nimi] EI OLE NULL)



Kui soovid vältida EF-i tekitamist nende täiendavate NULL-tingimustega, võid viidata järgmisele.

Seadista DbContextConfiguration.UseDatabaseNullSemantics omadus

Saab või määrab väärtuse, mis näitab, kas kahe operandi võrdlemisel kuvatakse andmebaasi nullsemantikat ja mõlemad on tõenäoliselt nullid. Vaikimisi väärtus on vale.

Kood on järgmine:


Näiteks:
Kui UseDatabaseNullSemantics on tõene, siis (operaand1 == operand2) teisendatakse (operand1 = operandiks) (operand1 = operandiks2);
Kui UseDatabaseNullSemantics on väär, teisendatakse see ((operaand1 = operand2) JA (NOT (operaand1 ON NULL VÕI operaand2 ON NULL))) VÕI ((operaand1 ON NULL) JA (operaand2 ON NULL))).

Dokumentatsioon (Dokumentatsiooni kirjelduses on viga):Hüperlingi sisselogimine on nähtav.

välja, et lisada [Vajalik] atribuut

Pärast seda, kui EF lisab [Required] atribuudi objekti omadusele, ei luba see tegelikult atribuuti (välja) andmebaasis NULL olla.Pärast migratsioonikäsu täitmist ei tohi väli olla NULLKuna väli ei tohi andmebaasis olla NULL, ei genereeri EF loomulikult mõningaid NULL-kontrolle selle välja jaoks loodud SQL-lausetes.

Viide:Hüperlingi sisselogimine on nähtav.






Eelmine:ASP.NET Core (kakskümmend üks) konfiguratsioonivalikud on erinevus AddOptions ja Configure vahel
Järgmine:ajax-hook veebiarenduseks püüab kinni kõik XMLHttpRequest päringud
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com