Követelmények: Amikor az EF linq-to-sql vagy lambda kifejezéseket használ az adatbázis lekérdezéséhez, az EF által generált SQL utasítások segítenek hozzáadni néhány IS NULL vagy NOT NULL feltételt.
1. példa:
Így generál egy SQL utasítást:
KIVÁLASZT [Extent2]. [UserStatus] AS [UserStatus], [Mérték1]. [Id] AS [Id] FROM [dbo]. [EmailInfo] AS [Kiterjedtség1] INNER JOIN [dbo]. [Számla] AS [Extent2] ON ([Extent1].[ cím] = [Mérték2]. [Email]) VAGY (([Extent1].[ cím] IS NULL) ÉS ([Extent2].[ E-mail] NULLA))
2. példa:
Így generál egy SQL utasítást:
KIVÁLASZT [Mérték1]. [Id] AS [Id], [Mérték1]. [Név] AS [Név], [Mérték1]. [ParentId] AS [ParentId], [Mérték1]. [Pozíció] AS [pozíció], [Mérték1]. [_CreateTime] MINT [_CreateTime], [Mérték1]. [_UpdateTime] MINT [_UpdateTime] FROM [dbo]. [Osztályozás] AS [Kiterjedtség1] AHOL ([Extent1].[ Név] IN (N'Android', N'Solaris')) ÉS ([Extent1].[ Név] NEM ÉRÉR)
Ha el akarod kerülni, hogy az EF generálja ezeket a további NULL feltételeket, hivatkozhatsz a következőkre.
Konfiguráld a DbContextConfiguration.UseDatabaseNullSemantics tulajdonságot
Olyan értéket kap vagy állít be, amely jelzi, hogy két operandot összehasonlítva nézzük-e meg az adatbázis null szemantikája, és valószínűleg mindkettő null. Az alapértelmezett érték hamis.
A kódex a következő:
Például: Ha a UseDatabaseNullSemantics igaz, akkor (operand1 == operand2) átalakul (operand1 = operand2); Ha a UseDatabaseNullSemantics hamis, akkor átalakítják (((operand1 = operand2) AND (NOT (operand1 NULL VAGY operand2 NULL))) vagy (((operand1 NULL) ÉS (operand2 NULL))).
Dokumentáció (Hiba van a dokumentációs leírásban):A hiperlink bejelentkezés látható.
mező hozzáadásához a [Szükséges] attribútumhoz
Miután az EF hozzáadja a [Required] attribútumot az objektum tulajdonságához, valójában nem engedi, hogy az attribútum (mező) NULL legyen az adatbázisban.A migrációs parancs végrehajtása után a mező nem lehet NULLMivel a mező nem NULL lehet az adatbázisban, az EF természetesen nem generál bizonyos NULL próbákat az adott mezőhöz generált SQL utasításokban.
Utalás:A hiperlink bejelentkezés látható.
|