Menu Docs

Regras e conteúdo de mensagens

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 gravidade 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:

Screenshot of builder expression with MABuilders1001 rule message

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:

Screenshot of builder expression with MABuilders2001 rule message

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:

Screenshot of LINQ expression with MALinq1001 rule message

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:

Screenshot of LINQ expression with MALinq2001 rule message

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:

Screenshot of LINQ expression with MALinq2002 rule message

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:

Screenshot of builder expression with MAPoco1001 rule message

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:

Screenshot of builder expression with MAPoco2001 rule message

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#.