Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 3654|Odpowiedź: 0

[Źródło] Instrukcje EF SQL automatycznie generują IS NULL lub IS NOT NULL

[Skopiuj link]
Opublikowano 21.06.2023 22:42:18 | | | |
Wymagania: Gdy EF używa wyrażeń linq do SQL lub lambda do zapytań bazy danych, instrukcje SQL generowane przez EF pomogą nam dodać niektóre warunki IS NULL lub NOT NULL.

Przykład 1:

Generuje on polecenie SQL w ten sposób:

WYBRAĆ
    [Zakres2]. [UserStatus] AS [UserStatus],
    [Extent1]. [Id] AS [Id]
    FROM [dbo]. [EmailInfo] AS [Zakres1]
    INNER JOIN [dbo]. [Konto] AS [Extent2] NA ([Extent1].[ Adres] = [Zakres2]. [Email]) LUB (([Extent1].[ adres] JEST NULL) ORAZ ([Extent2].[ Email] JEST NIEWAŻNE))



Przykład 2:

Generuje on polecenie SQL w ten sposób:

WYBRAĆ
    [Extent1]. [Id] AS [Id],
    [Extent1]. [Imię] AS [Imię],
    [Extent1]. [ParentId] AS [ParentId],
    [Extent1]. [Pozycja] AS [Pozycja],
    [Extent1]. [_CreateTime] AS [_CreateTime],
    [Extent1]. [_UpdateTime] JAKO [_UpdateTime]
    FROM [dbo]. [Klasyfikacja] AS [Zakres1]
    GDZIE ([Extent1].[ Nazwa] IN (N'Android', N'Solaris')) Oraz ([Extent1].[ Nazwa] NIE JEST NULL)



Jeśli chcesz uniknąć generowania tych dodatkowych warunków NULL przez EF, możesz odnieść się do następujących.

Konfiguruj właściwość DbContextConfiguration.UseDatabaseNullSemantics

Otrzymuje lub ustawia wartość wskazującą, czy wyświetlić semantykę nullowej bazy danych przy porównaniu dwóch operandów i oba prawdopodobnie będą zerowe. Domyślna wartość jest fałszywa.

Kod jest następujący:


Na przykład:
Jeśli UseDatabaseNullSemantics jest prawdziwy, to (operand1 == operand2) zostanie przekształcony w (operand1 = operand2);
Jeśli UseDatabaseNullSemantics jest fałszywy, zostanie przekształcony w (((operand1 = operand2) I (NOT (operand1 JEST NULL LUB operand2 JEST NULL))) LUB (operand1 JEST NULL) ORAZ (operand2 JEST NULL))).

Dokumentacja (W opisie dokumentacji jest błąd):Logowanie do linku jest widoczne.

pole dodające atrybut [Wymagane]

Po dodaniu atrybutu [Wymagane] do właściwości obiektu przez EF, w rzeczywistości nie pozwala on na to, aby atrybut (pole) był NULL w bazie danych.Po wykonaniu polecenia migracji pole nie może być NULLPonieważ pole nie może być NULL w bazie danych, EF naturalnie nie generuje niektórych sprawdzeń NULL w instrukcjach SQL generowanych dla tego pola.

Odniesienie:Logowanie do linku jest widoczne.






Poprzedni:ASP.NET Opcje konfiguracji rdzenia (dwadzieścia jeden) to różnica między AddOptions a Configure
Następny:Hak ajax-hook do tworzenia stron internetowych przechwytuje wszystkie żądania XMLHttpRequest
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com