Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 3654|Répondre: 0

[Source] Les instructions EF SQL GÉNÈRENT AUTOMATIQUEMENT IS NULL OU IS NOT NULL

[Copié le lien]
Publié sur 21/06/2023 22:42:18 | | | |
Exigences : Lorsque EF utilise des expressions linq to sql ou lambda pour interroger la base de données, les instructions SQL générées par EF nous aideront à ajouter certaines conditions IS NULL ou NOT NULL.

Exemple 1 :

Il génère une instruction SQL comme ceci :

CHOISIR
    [Étendue2]. [Statut utilisateur] EN TANT que [UserStatus],
    [Étendue 1]. [Id] EN TANT [Id]
    DE [dbo]. [InfosEmail] EN TANT [Étendue 1]
    JOINT INTÉRIEUR [dbo]. [Compte] EN TANT [Étendue2] SUR ([Étendue1].[ Adresse] = [Étendue2]. [Email]) OU (([Étendue1].[ Adresse] EST NULLE) ET ([Étendue2].[ Email] EST NULL))



Exemple 2 :

Il génère une instruction SQL comme ceci :

CHOISIR
    [Étendue 1]. [Id] EN TANT que [Id],
    [Étendue 1]. [Nom] EN TANT que [Nom],
    [Étendue 1]. [ParentId] AS [ParentId],
    [Étendue 1]. [Position] AS [Position],
    [Étendue 1]. [_CreateTime] COMME [_CreateTime],
    [Étendue 1]. [_UpdateTime] COMME [_UpdateTime]
    DE [dbo]. [Classification] EN TANT [Étendue 1]
    OÙ ([Étendue1].[ Nom] IN (N’Android', N’Solaris')) ET ([Étendue1].[ Nom] N’EST PAS NULL)



Si vous souhaitez éviter que l’EF génère ces conditions NULL supplémentaires, vous pouvez vous référer à ce qui suit.

Configurez la propriété DbContextConfiguration.UseDatabaseNullSemantics

Obtient ou définit une valeur qui indique s’il faut afficher la sémantique nulle de la base de données lors de la comparaison de deux opérandes, et ils sont tous deux susceptibles d’être nuls. La valeur par défaut est fausse.

Le code est le suivant :


Par exemple:
Si UseDatabaseNullSemantics est vrai, alors (opérande1 == opérande2) sera converti en (opérande1 = opérande2) ;
Si UseDatabaseNullSemantics est faux, il sera converti en (((opérande1 = opérande2) ET (NOT (l’opérande1 EST NUL OU l’opérand2 EST NULL))) OU ((l’opérande1 EST NULL) ET (l’opérand2 EST NULL))).

Documentation (Il y a une erreur dans la description de la documentation):La connexion hyperlientérée est visible.

champ pour ajouter l’attribut [Required]

Après que EF ajoute l’attribut [Required] à la propriété object, il n’autorise en réalité plus l’attribut (champ) à être NULL dans la base de données.Après avoir exécuté la commande de migration, le champ n’est pas autorisé à être NULLPuisque le champ n’est pas autorisé à être NULL dans la base de données, EF ne génère naturellement pas certaines vérifications NULL dans les instructions SQL générées pour ce champ.

Référence:La connexion hyperlientérée est visible.






Précédent:ASP.NET options de configuration Core (vingt-et-un) font la différence entre AddOptions et Configure
Prochain:Le crochet ajax pour le développement web intercepte toutes les requêtes XMLHttpRequest
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com