Menu Docs
Página inicial do Docs
/
Analisador do MongoDB C#

Regras e conteúdo de mensagens

Nesta página

  • Visão geral
  • Descrições da regra
  • MABuilders1001
  • MABuilders2001
  • MALinq1001
  • MALinq2001
  • MALinq2002
  • MAPoco1001
  • mapoco2001

Neste guia, você aprenderá sobre as regras do MongoDB C# Analyzer e as mensagens anexadas. Uma regra avalia diferentes partes do seu código e retorna uma mensagem se uma condição específica for atendida.

Por exemplo, o analisador pode aplicar uma regra se detectar uma expressão LINQ, o que faz com que seu IDE exiba uma mensagem que contém a expressão equivalente da API de query. Cada regra tem um nível de severidade de Info ou Warning que impacto onde a mensagem pode ser gravada.

As seções a seguir descrevem cada regra do C# Analyzer, incluindo a categoria da regra, o nível de gravidade e a descrição da mensagem correspondente. Cada seção também inclui uma mensagem de exemplo.

A regra MABuilders1001 avalia seu código para expressão de construtores e Atlas Triggers uma mensagem que contém a expressão equivalente da query API.

categoria
MongoDB.Analyzer.Builders
Gravidade
Info
Notas
none

O código a seguir Atlas Triggers a regra MABuilders1001 para exibir uma mensagem que mostra a expressão equivalente da query API:

var filter = Builders<Book>.Filter.Eq(b => b.Genre, "Theory") &
Builders<Book>.Filter.Gte(b => b.Price, 10);

A imagem a seguir exibe a regra MABuilders1001 e a mensagem de informações:

Captura de tela da expressão do construtor com a mensagem de regra MABuilders1001

Dica

Para saber mais sobre expressões de construtores, consulte o guia Analisar Expressões de Construtores .

A regra MABuilders2001 detecta expressões de construtores não suportadas e exibe um erro de tradução da expressão não suportada.

categoria
MongoDB.Analyzer.Builders
Gravidade
Warning
Notas
Para visualizar exemplos de expressões de construtores não suportados, consulte os arquivos de teste de código fonte.

O seguinte código Atlas Triggers a regra MABuilders2001 para exibir uma mensagem que mostra a expressão de construtores não suportado:

var filter = Builders<Book>.Filter.Eq(b => b.Price + 2, 1);

A imagem a seguir exibe a regra MABuilders2001 e a mensagem de informações:

Captura de tela da expressão do construtor com a mensagem de regra MABuilders2001

Dica

Para saber mais sobre expressões de construtores, consulte o guia Analisar Expressões de Construtores .

A regra MALinq1001 avalia seu código para expressão LINQ e Atlas Triggers uma mensagem que contém a expressão equivalente da query API.

categoria
MongoDB.Analyzer.LINQ
Gravidade
Info
Notas
Esta regra pode ser aplicada de forma diferente dependendo do valor da sua configuração do DefaultLinqVersion . Para saber mais, consulte as opções de configuração do analisador.

O código a seguir Atlas Triggers a regra MALinq1001 para exibir uma mensagem que mostra a expressão equivalente da query API:

var results = queryableColl
.Where(b => b.Genre == "Theory")
.OrderBy(b => b.Price);

A imagem a seguir exibe a regra MALinq1001 e a mensagem de informações:

Captura de tela da expressão LINQ com mensagem de regra MALinq1001

Dica

Para saber mais sobre expressões LINQ, consulte o guia Analyze LINQ Expressions .

A regra MALinq2001 detecta expressões LINQ não suportadas e exibe um erro de tradução da expressão não suportada.

categoria
MongoDB.Analyzer.LINQ
Gravidade
Warning
Notas
This rule might apply differently depending on the value of
your DefaultLinqVersion configuration setting. To learn more,

To view examples of unsupported LINQ expressions, see the

O código a seguir aciona a regra MALinq2001 para exibir uma mensagem que mostra a expressão LINQ não suportada:

var results = queryableColl.Where(b => b.GetHashCode() == 1);

A imagem a seguir exibe a regra MALinq2001 e a mensagem de informações:

Captura de tela da expressão LINQ com mensagem de regra MALinq2001

Dica

Para saber mais sobre expressões LINQ, consulte o guia Analyze LINQ Expressions .

A regra MALinq2002 detecta se uma expressão é suportada somente no LINQ3 e exibe uma mensagem que contém a expressão equivalente da API de query.

categoria
MongoDB.Analyzer.LINQ
Gravidade
Warning
Notas
This rule might apply differently depending on the value of
your DefaultLinqVersion configuration setting. To learn more,

To view examples of supported LINQ3 expressions, see the

O código a seguir Atlas Triggers a regra MALinq2002 para exibir uma mensagem que mostra a expressão LINQ3 suportada:

var results = queryableColl
.Where(b => b.Price + 1 == 21)
.Where(b => "Re-release: " + b.Title == "Re-release: Siddhartha");

A imagem a seguir exibe a regra MALinq2002 e a mensagem de informações:

Captura de tela da expressão LINQ com mensagem de regra MALinq2002

Dica

Para saber mais sobre expressões LINQ, consulte o guia Analyze LINQ Expressions .

A regra MAPoco1001 avalia seu código para declarações POCO e Atlas Triggers uma mensagem que contém a representação JSON de uma instância de amostra. Esta regra avalia algumas anotações de serialização BSON, como BsonIgnore e BsonElement.

categoria
MongoDB.Analyzer.Poco
Gravidade
Info
Notas
Esta regra pode ser aplicada de forma diferente dependendo do valor da sua configuração do PocoAnalysisVerbosity . Para saber mais, consulte as opções de configuração do analisador.

O código a seguir aciona a regra MAPoco1001 para exibir uma mensagem que mostra a representação JSON de uma amostra POCO:

public class Person
{
[BsonId]
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
[BsonIgnore]
public double Income { get; set; }
}

A imagem a seguir exibe a regra MAPoco1001 e a mensagem de informações:

Captura de tela da expressão do construtor com a mensagem de regra mapoco1001

Dica

Para saber mais sobre a análise POCO, consulte o guia Analisar POCOs .

Para saber mais sobre anotações POCO, consulte o guia POCOs na documentação do driver .NET/C#.

A regra MAPoco2001 avalia seu código para configurações de serialização não suportadas especificadas em uma declaração POCO.

categoria
MongoDB.Analyzer.Poco
Gravidade
Warning
Notas
This rule might apply differently depending on the value of
your PocoAnalysisVerbosity configuration setting. To learn more,

To view examples of unsupported POCO declarations, see the

O código a seguir aciona a regra MAPoco2001 para exibir uma mensagem que explica que o código inclui uma configuração de serialização inválida no campo Date :

public class Appointment
{
[BsonDateTimeOptions(DateOnly = true, Kind = DateTimeKind.Local)]
public decimal Date { get; set; }
public string Doctor { get; set; }
}

A imagem a seguir exibe a regra MAPoco2001 e a mensagem de informações:

Captura de tela da expressão do construtor com a mensagem de regra mapoco2001

Dica

Para saber mais sobre a análise POCO, consulte o guia Analisar POCOs .

Para saber mais sobre anotações POCO, consulte o guia POCOs na documentação do driver .NET/C#.

Voltar

POCOs