Vaatimukset: Kun EF käyttää linq to sql- tai lambda-lausekkeita tietokannan kyselyyn, EF:n generoimat SQL-lauseet auttavat lisäämään joitakin IS NULL tai NOT NULL -ehtoja.
Esimerkki 1:
Se generoi SQL-lauseen näin:
VALIKOIDA [Extent2]. [KäyttäjäTila] AS [UserStatus], [Laajuus1]. [Id] AS [Id] FROM [dbo]. [EmailInfo] AS [Laajuus1] INNER JOIN [dbo]. [Tili] AS [Extent2] ON ([Extent1].[ Osoite] = [Laajuus2]. [Sähköposti]) TAI (([Extent1].[ Osoite] ON NULL) ja ([Extent2].[ Sähköposti] ON NOLLA))
Esimerkki 2:
Se generoi SQL-lauseen näin:
VALIKOIDA [Laajuus1]. [id] AS [id], [Laajuus1]. [Nimi] AS [Nimi], [Laajuus1]. [ParentId] AS [ParentId], [Laajuus1]. [Sijainti] AS [Asema], [Laajuus1]. [_CreateTime] AS [_CreateTime], [Laajuus1]. [_UpdateTime] AS [_UpdateTime] FROM [dbo]. [Luokitus] AS [Laajuus1] MISSÄ ([Extent1].[ Nimi] IN (N'Android', N'Solaris')) JA ([Extent1].[ Nimi] EI OLE MITÄTÖN)
Jos haluat välttää EF:n tuottamasta näitä lisäNULL-ehtoja, voit viitata seuraaviin.
Määritä DbContextConfiguration.UseDatabaseNullSemantics -ominaisuus
Saa tai asettaa arvon, joka kertoo, näytetäänkö tietokannan null-semantiikka verrattaessa kahta operandia, ja molemmat ovat todennäköisesti nollaa. Oletusarvo on väärin.
Koodi on seuraava:
Esimerkiksi: Jos UseDatabaseNullSemantics on tosi, niin (operand1 == operand2) muunnetaan muotoon (operand1 = operand2); Jos UseDatabaseNullSemantics on epätosi, se muunnetaan muotoon ((operand1 = operand2) JA (NOT (operand1 ON NULL TAI operand2 ON NULL))) TAI ((operand1 ON NULL) JA (operand2 ON NULL))).
Dokumentaatio (Dokumentaation kuvauksessa on virhe):Hyperlinkin kirjautuminen on näkyvissä.
kenttä lisätäkseen [Vaaditaan] attribuutin
Kun EF lisää [Vaaditaan] attribuutin objektiominaisuuteen, se ei itse asiassa salli attribuutin (kentän) olla NULL tietokannassa.Migraatiokäskyn suorittamisen jälkeen kenttä ei saa olla NULLKoska kenttä ei saa olla NULL tietokannassa, EF ei luonnollisesti tuota joitakin NULL-tarkistuksia kyseiselle kentälle luoduissa SQL-lauseissa.
Viittaus:Hyperlinkin kirjautuminen on näkyvissä.
|