Visão geral
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.
Descrições da regra
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.
MABuilders1001
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 | 
 | 
| Gravidade | 
 | 
| 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:

Dica
Para saber mais sobre expressões de construtores, consulte o guia Analisar Expressões de Construtores .
MABuilders2001
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 | 
 | 
| Gravidade | 
 | 
| Notas | Para visualizar exemplos de expressões de construtores não suportados, consulte osarquivos 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:

Dica
Para saber mais sobre expressões de construtores, consulte o guia Analisar Expressões de Construtores .
MALinq1001
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 | 
 | 
| Gravidade | 
 | 
| Notas | Esta regra pode ser aplicada de forma diferente dependendo do valor da sua configuração do  | 
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:

Dica
Para saber mais sobre expressões LINQ, consulte o guia Analyze LINQ Expressions .
MALinq2001
A regra MALinq2001 detecta expressões LINQ não suportadas e exibe um erro de tradução da expressão não suportada.
| categoria | 
 | 
| Gravidade | 
 | 
| Notas | This rule might apply differently depending on the value of your  DefaultLinqVersionconfiguration setting. To learn more,see the Analyzer Configuration Options. 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:

Dica
Para saber mais sobre expressões LINQ, consulte o guia Analyze LINQ Expressions .
MAPoco1001
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 | 
 | 
| Gravidade | 
 | 
| Notas | Esta regra pode ser aplicada de forma diferente dependendo do valor da sua configuração do  | 
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 {    []    public int Id { get; set; }    public string FirstName { get; set; }    public string LastName { get; set; }    public int Age { get; set; }    []    public double Income { get; set; } } 
A imagem a seguir exibe a regra MAPoco1001 e a mensagem de informações:

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#.
mapoco2001
A regra MAPoco2001 avalia seu código para configurações de serialização não suportadas especificadas em uma declaração POCO.
| categoria | 
 | 
| Gravidade | 
 | 
| Notas | This rule might apply differently depending on the value of your  PocoAnalysisVerbosityconfiguration setting. To learn more,see the Analyzer Configuration Options. 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 {    []    public decimal Date { get; set; }    public string Doctor { get; set; } } 
A imagem a seguir exibe a regra MAPoco2001 e a mensagem de informações:

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