Regras e conteúdo de mensagens
Nesta página
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 | 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:
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 | 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:
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 | 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:
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 | MongoDB.Analyzer.LINQ |
Gravidade | Warning |
Notas | This rule might apply differently depending on the value of your DefaultLinqVersion configuration 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 .
MALinq2002
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,see the Analyzer Configuration Options. 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:
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 | 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 { [ ] 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 | MongoDB.Analyzer.Poco |
Gravidade | Warning |
Notas | This rule might apply differently depending on the value of your PocoAnalysisVerbosity configuration 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#.