Nõuded: Kui EF kasutab andmebaasi pärimiseks linq to sql või lambda avaldisi, aitavad EF-i genereeritud SQL-laused lisada mõningaid IS NULL või NOT NULL tingimusi.
Näide 1:
See genereerib SQL-lause järgmiselt:
VALIMA [Extent2]. [KasutajaStaatus] AS [UserStatus], [Ulatus1]. [Id] AS [Id] FROM [dbo]. [EmailInfo] AS [Ulatus1] INNER JOIN [dbo]. [Konto] AS [Extent2] PEAL ([Extent1].[ Aadress] = [Ulatus2]. [E-post]) VÕI (([Extent1].[ Aadress] ON NULL) ja ([Extent2].[ E-post] ON NULL))
Näide 2:
See genereerib SQL-lause järgmiselt:
VALIMA [Ulatus1]. [id] AS [id], [Ulatus1]. [Nimi] AS [Nimi], [Ulatus1]. [ParentId] AS [ParentId], [Ulatus1]. [Positsioon] AS [Positsioon], [Ulatus1]. [_CreateTime] AS [_CreateTime], [Ulatus1]. [_UpdateTime] KUI [_UpdateTime] FROM [dbo]. [Klassifikatsioon] AS [Ulatus1] KUS ([Extent1].[ Nimi] IN (N'Android', N'Solaris')) JA ([Extent1].[ Nimi] EI OLE NULL)
Kui soovid vältida EF-i tekitamist nende täiendavate NULL-tingimustega, võid viidata järgmisele.
Seadista DbContextConfiguration.UseDatabaseNullSemantics omadus
Saab või määrab väärtuse, mis näitab, kas kahe operandi võrdlemisel kuvatakse andmebaasi nullsemantikat ja mõlemad on tõenäoliselt nullid. Vaikimisi väärtus on vale.
Kood on järgmine:
Näiteks: Kui UseDatabaseNullSemantics on tõene, siis (operaand1 == operand2) teisendatakse (operand1 = operandiks) (operand1 = operandiks2); Kui UseDatabaseNullSemantics on väär, teisendatakse see ((operaand1 = operand2) JA (NOT (operaand1 ON NULL VÕI operaand2 ON NULL))) VÕI ((operaand1 ON NULL) JA (operaand2 ON NULL))).
Dokumentatsioon (Dokumentatsiooni kirjelduses on viga):Hüperlingi sisselogimine on nähtav.
välja, et lisada [Vajalik] atribuut
Pärast seda, kui EF lisab [Required] atribuudi objekti omadusele, ei luba see tegelikult atribuuti (välja) andmebaasis NULL olla.Pärast migratsioonikäsu täitmist ei tohi väli olla NULLKuna väli ei tohi andmebaasis olla NULL, ei genereeri EF loomulikult mõningaid NULL-kontrolle selle välja jaoks loodud SQL-lausetes.
Viide:Hüperlingi sisselogimine on nähtav.
|