Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 3654|Antwort: 0

[Quelle] EF SQL-Anweisungen generieren automatisch IS NULL oder IS NICHT NULL

[Link kopieren]
Veröffentlicht am 21.06.2023 22:42:18 | | | |
Anforderungen: Wenn EF linq-to-sql- oder lambda-Ausdrücke verwendet, um die Datenbank abzufragen, helfen die von EF generierten SQL-Anweisungen dabei, einige Bedingungen IST NULL oder NICHT NULL hinzuzufügen.

Beispiel 1:

Es erzeugt eine SQL-Anweisung wie diese:

AUSWÄHLEN
    [Extent2]. [UserStatus] AS [UserStatus],
    [Extent1]. [Id] AS [Id]
    VON [dbo]. [EmailInfo] AS [Extent1]
    INNER JOIN [dbo]. [Konto] WIE [Extent2] AUF ([Extent1].[ Adresse] = [Extent2]. [E-Mail]) ODER (([Extent1].[ Adresse] IST NULL) UND ([Extent2].[ E-Mail] IST NULL))



Beispiel 2:

Es erzeugt eine SQL-Anweisung wie diese:

AUSWÄHLEN
    [Extent1]. [Id] AS [Id],
    [Extent1]. [Name] AS [Name],
    [Extent1]. [ParentId] AS [ParentId],
    [Extent1]. [Position] AS [Position],
    [Extent1]. [_CreateTime] ALS [_CreateTime],
    [Extent1]. [_UpdateTime] ALS [_UpdateTime]
    VON [dbo]. [Klassifizierung] AS [Extent1]
    WO ([Extent1].[ Name] IN (N'Android', N'Solaris')) UND ([Extent1].[ Name] IST NICHT NULL)



Wenn du vermeiden möchtest, dass EF diese zusätzlichen NULL-Bedingungen erzeugt, kannst du auf die folgenden Punkte zurückgreifen.

Configure die Eigenschaft DbContextConfiguration.UseDatabaseNullSemantics

Erhält oder setzt einen Wert, der angibt, ob Datenbank-Nullsemantik beim Vergleich zweier Operanden angezeigt werden soll, und beide sind wahrscheinlich null. Der Standardwert ist falsch.

Der Code lautet wie folgt:


Zum Beispiel:
Wenn UseDatabaseNullSemantics wahr ist, dann wird (operand1 == operand2) in (operand1 = operand2) umgewandelt;
Wenn UseDatabaseNullSemantics falsch ist, wird es umgewandelt in (((operand1 = operand2) UND (NOT (operand1 ist null oder operand2 ist null))) oder ((operand1 ist null) und (operand2 ist NULL))).

Dokumentation (Es gibt einen Fehler in der Dokumentationsbeschreibung):Der Hyperlink-Login ist sichtbar.

Feld zur Hinzufügung des Attributs [Erforderlich]

Nachdem EF das [Required]-Attribut zur Objekteigenschaft hinzugefügt hat, erlaubt es tatsächlich nicht, dass das Attribut (Feld) in der Datenbank NULL ist.Nach Ausführung des Migrationsbefehls darf das Feld nicht NULL seinDa das Feld in der Datenbank nicht NULL sein darf, erzeugt EF natürlich keine NULL-Prüfungen in den für dieses Feld erstellten SQL-Anweisungen.

Referenz:Der Hyperlink-Login ist sichtbar.






Vorhergehend:ASP.NET Core (einundzwanzig) Konfigurationsoptionen unterscheiden AddOptions und Configure
Nächster:Der ajax-hook für Webentwicklung fängt alle XMLHttpRequest-Anfragen ab
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com