Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 3654|Odgovoriti: 0

[Vir] EF SQL stavki samodejno generirajo IS NULL ali IS NOT NULL

[Kopiraj povezavo]
Objavljeno na 21. 06. 2023 22:42:18 | | | |
Zahteve: Ko EF uporablja linq to sql ali lambda izraze za poizvedbo v bazi, nam SQL stavki, ki jih generira EF, pomagajo dodati nekatere pogoje IS NULL ali NOT NULL.

Primer 1:

Generira SQL izjavo, kot je ta:

IZBRATI
    [Obseg2]. [UserStatus] AS [UserStatus],
    [Extent1]. [Id] AS [Id]
    IZ [dbo]. [EmailInfo] AS [Obseg1]
    INNER JOIN [dbo]. [Račun] AS [Extent2] NA ([Extent1].[ Naslov] = [Obseg2]. [E-pošta]) ALI (([Extent1].[ Naslov] JE NULL) IN ([Extent2].[ E-pošta] JE NEVELJAVNA))



Primer 2:

Generira SQL izjavo, kot je ta:

IZBRATI
    [Extent1]. [Id] AS [Id],
    [Extent1]. [Ime] AS [Ime],
    [Extent1]. [ParentId] AS [ParentId],
    [Extent1]. [Položaj] AS [Pozicija],
    [Extent1]. [_CreateTime] KOT [_CreateTime],
    [Extent1]. [_UpdateTime] KOT [_UpdateTime]
    IZ [dbo]. [Klasifikacija] AS [Obseg1]
    KJER ([Extent1].[ Ime] IN (N'Android', N'Solaris')) IN ([Extent1].[ Ime] NI NIČLEN)



Če želite preprečiti, da bi EF generirala te dodatne NIČELNE pogoje, se lahko sklicujete na naslednje.

Konfigurirajte lastnost DbContextConfiguration.UseDatabaseNullSemantics

Dobi ali nastavi vrednost, ki kaže, ali naj se pri primerjavi dveh operandov prikaže ničelna semantika baze podatkov, pri čemer sta oba verjetno ničelna. Privzeta vrednost je napačna.

Koda je naslednja:


Na primer:
Če je UseDatabaseNullSemantics resničen, potem bo (operand1 == operand2) pretvorjen v (operand1 = operand2);
Če je UseDatabaseNullSemantics false, se pretvori v (((operand1 = operand2) IN (NOT (operand1 JE NULL ALI operand2 JE NULL))) ALI (operand1 JE NULL) IN (operand2 JE NULL))).

Dokumentacija (V opisu dokumentacije je napaka):Prijava do hiperpovezave je vidna.

polje za dodajanje atributa [Obvezno]

Ko EF doda atribut [Required] k lastnosti objekta, dejansko ne dovoli, da bi bil atribut (polje) NULL v bazi podatkov.Po izvedbi ukaza za migracijo polje ne sme biti NULLKer polje v podatkovni bazi ne sme biti NULL, EF naravno ne generira nekaterih NULL preverjanj v SQL stavkih, ustvarjenih za to polje.

Referenčni:Prijava do hiperpovezave je vidna.






Prejšnji:ASP.NET Osnovne (enaindvajset) konfiguracijske možnosti so razlika med AddOptions in Configure
Naslednji:Ajax-hook za spletni razvoj prestreže vse XMLHttpRequest zahteve
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com