Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 3654|Resposta: 0

[Fonte] Instruções SQL do EF geram automaticamente IS NULL ou IS NOT NULL

[Copiar link]
Publicado em 21/06/2023 22:42:18 | | | |
Requisitos: Quando o EF usa expressões linq to sql ou lambda para consultar o banco de dados, as instruções SQL geradas pelo EF nos ajudarão a adicionar algumas condições IS NULL ou NOT NULL.

Exemplo 1:

Ele gera uma instrução SQL assim:

SELECIONAR
    [Extensão2]. [StatusDeUsuário] COMO [UserStatus],
    [Extensão1]. [Id] COMO [ID]
    DE [dbo]. [InformaçõesEmail] COMO [Extensão1]
    INNER JOIN [dbo]. [Conta] COMO [Extensão2] EM ([Extensão1].[ Endereço] = [Extensão2]. [E-mail]) OU (([Extensão1].[ Endereço] É NULO) E ([Extensão2].[ Email] É NULO))



Exemplo 2:

Ele gera uma instrução SQL assim:

SELECIONAR
    [Extensão1]. [Id] COMO [Id],
    [Extensão1]. [Nome] COMO [Nome],
    [Extensão1]. [ParentId] AS [ParentId],
    [Extensão1]. [Posição] AS [Posição],
    [Extensão1]. [_CreateTime] COMO [_CreateTime],
    [Extensão1]. [_UpdateTime] COMO [_UpdateTime]
    DE [dbo]. [Classificação] COMO [Extensão1]
    ONDE ([Extensão1].[ Nome] IN (N'Android', N'Solaris')) E ([Extensão1].[ Nome] NÃO É NULO)



Se você quiser evitar que o EF gere essas condições NULL adicionais, pode consultar o seguinte.

Configure a propriedade DbContextConfiguration.UseDatabaseNullSemantics

Recebe ou define um valor que indica se deve ser exibida a semântica nula do banco de dados ao comparar dois operandos e ambos provavelmente são nulos. O valor padrão é falso.

O código é o seguinte:


Por exemplo:
Se UseDatabaseNullSemantics for verdadeiro, então (operando1 == operando2) será convertido em (operando1 = operando2);
Se UseDatabaseNullSemantics for falso, ele será convertido em (((operando1 = operando2) E (NÃO (operando1 É NULO OU operando2 É NULO))) OU ((operando1 É NULO) E (operando2 É NULO))).

Documentação (Há um erro na descrição da documentação):O login do hiperlink está visível.

campo para adicionar o atributo [Required]

Depois que o EF adiciona o atributo [Required] à propriedade do objeto, na verdade não permite que o atributo (campo) seja NULL no banco de dados.Após executar o comando de migração, o campo não pode ser NULLComo o campo não pode ser NULL no banco de informações, o EF naturalmente não gera algumas verificações NULL nas instruções SQL geradas para aquele campo.

Referência:O login do hiperlink está visível.






Anterior:ASP.NET Opções de configuração Core (vinte e um) são a diferença entre AddOptions e Configure
Próximo:O hook ajax para desenvolvimento web intercepta todas as solicitações XMLHttpRequest
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com