Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 3654|Risposta: 0

[Fonte] Le istruzioni SQL di EF generano automaticamente IS NULL o IS NOT NULL

[Copiato link]
Pubblicato su 21/06/2023 22:42:18 | | | |
Requisiti: Quando EF utilizza espressioni linq to sql o lambda per interrogare il database, le istruzioni SQL generate da EF ci aiuteranno ad aggiungere alcune condizioni IS NULL o NOT NULL.

Esempio 1:

Genera un'istruzione SQL come questa:

SELEZIONARE
    [Estensione 2]. [Stato dell'utente] COME [UserStatus],
    [Estensione 1]. [Id] COME [Id]
    DA [dbo]. [InfoEmail] COME [Estensione1]
    INNER JOIN [dbo]. [Conto] COME [Estensione2] SU ([Estensione1].[ Indirizzo] = [Estensione2]. [Email]) OPPURE (([Estensione1].[ Indirizzo] È NULLO) E ([Estensione2].[ Email] È NULL))



Esempio 2:

Genera un'istruzione SQL come questa:

SELEZIONARE
    [Estensione 1]. [Id] COME [Id],
    [Estensione 1]. [Nome] COME [Nome],
    [Estensione 1]. [ParentId] AS [ParentId],
    [Estensione 1]. [Posizione] COME [Posizione],
    [Estensione 1]. [_CreateTime] COME [_CreateTime],
    [Estensione 1]. [_UpdateTime] COME [_UpdateTime]
    DA [dbo]. [Classificazione] COME [Estensione1]
    DOVE ([Estensione1].[ Nome] IN (N'Android', N'Solaris')) E ([Estensione1].[ Nome] NON È NULLO)



Se vuoi evitare che EF generi queste condizioni NULL aggiuntive, puoi fare riferimento a quanto segue.

Configura la proprietà DbContextConfiguration.UseDatabaseNullSemantics

Ottiene o imposta un valore che indica se mostrare la semantica nulla del database quando si confrontano due operandi e probabilmente entrambi sono nulli. Il valore predefinito è falso.

Il codice è il seguente:


Per esempio:
Se UseDatabaseNullSemantics è vero, allora (operando1 == operando2) sarà convertito in (operando1 = operando2);
Se UseDatabaseNullSemantics è falso, verrà convertito in (((operando1 = operando2) E (NON (operando1 È NULLO O operando2 È NULLO))) OPPURE ((operando1 È NULLO) E (operando2 È NULLO))).

Documentazione (C'è un errore nella descrizione della documentazione):Il login del link ipertestuale è visibile.

campo per aggiungere l'attributo [Required]

Dopo che EF aggiunge l'attributo [Required] alla proprietà dell'oggetto, in realtà non permette che l'attributo (campo) sia NULL nel database.Dopo aver eseguito il comando di migrazione, il campo non può essere NULLPoiché il campo non può essere NULL nel database, EF naturalmente non genera alcuni controlli NULL nelle istruzioni SQL generate per quel campo.

Riferimento:Il login del link ipertestuale è visibile.






Precedente:ASP.NET Core (ventuno) opzioni di configurazione sono la differenza tra AddOptions e Configure
Prossimo:L'ajax-hook per lo sviluppo web intercetta tutte le richieste XMLHttpRequest
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com