Overview
En esta guía, aprenderá sobre las reglas del analizador de C# de MongoDB y los mensajes adjuntos. Una regla evalúa diferentes partes de su código y devuelve un mensaje si se cumple una condición específica.
Por ejemplo, el Analizador podría aplicar una regla si detecta una expresión LINQ, lo que hace que su IDE muestre un mensaje que contiene la expresión de Query API equivalente. Cada regla tiene un nivel de gravedad de
Info o Warning que afecta dónde se puede grabar el mensaje.
Descripciones de reglas
Las siguientes secciones describen cada regla de C# Analyzer, incluyendo su categoría, nivel de gravedad y descripción del mensaje correspondiente. Cada sección también incluye un mensaje de ejemplo.
Constructores de MA1001
La regla MABuilders1001 evalúa su código en busca de expresiones de generadores y activa un mensaje que contiene la expresión de API de consulta equivalente.
Categoría |
|
Gravedad |
|
notas | Ninguno |
El siguiente código activa la regla MABuilders1001 para mostrar un mensaje que muestra la expresión de API de consulta equivalente:
var filter = Builders<Book>.Filter.Eq(b => b.Genre, "Theory") & Builders<Book>.Filter.Gte(b => b.Price, 10);
La siguiente imagen muestra la regla MABuilders1001 y el mensaje de información:

Tip
Para obtener más información sobre las expresiones de constructores, consulte la Guía deanálisis de expresiones de constructores.
MABuilders2001
La regla MABuilders2001 detecta expresiones de constructores no compatibles y muestra un error de traducción de la expresión no compatible.
Categoría |
|
Gravedad |
|
notas | Para ver ejemplos de expresiones de constructores no compatibles, consulte la archivos de prueba de código fuente. |
El siguiente código activa la regla MABuilders2001 para mostrar un mensaje que muestra la expresión de constructores no compatibles:
var filter = Builders<Book>.Filter.Eq(b => b.Price + 2, 1);
La siguiente imagen muestra la regla MABuilders2001 y el mensaje de información:

Tip
Para obtener más información sobre las expresiones de constructores, consulte la guía Analizar expresiones de constructores.
MALinq1001
La regla MALinq1001 evalúa su código en busca de expresiones LINQ y activa un mensaje que contiene la expresión Query API equivalente.
Categoría |
|
Gravedad |
|
notas | Esta regla podría aplicarse de forma diferente según el valor de su |
El siguiente código activa la regla MALinq1001 para mostrar un mensaje que muestra la expresión de API de consulta equivalente:
var results = queryableColl .Where(b => b.Genre == "Theory") .OrderBy(b => b.Price);
La siguiente imagen muestra la regla MALinq1001 y el mensaje de información:

Tip
Para obtener más información sobre las expresiones LINQ, consulte la guía Analizar expresiones LINQ.
MALinq2001
La regla MALinq2001 detecta expresiones LINQ no compatibles y muestra un error de traducción de la expresión no compatible.
Categoría |
|
Gravedad |
|
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 |
El siguiente código activa la regla MALinq2001 para mostrar un mensaje que muestra la expresión LINQ no admitida:
var results = queryableColl.Where(b => b.GetHashCode() == 1);
La siguiente imagen muestra la regla MALinq2001 y el mensaje de información:

Tip
Para obtener más información sobre las expresiones LINQ, consulte la guía Analizar expresiones LINQ.
MAPoco1001
La regla MAPoco1001 evalúa el código en busca de declaraciones POCO y genera un mensaje que contiene la representación JSON de una instancia de ejemplo. Esta regla evalúa algunas anotaciones de serialización BSON, como BsonIgnore y BsonElement.
Categoría |
|
Gravedad |
|
notas | Esta regla podría aplicarse de forma diferente según el valor de su |
El siguiente código activa la regla MAPoco1001 para mostrar un mensaje que muestra la representación JSON de un POCO de muestra:
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; } }
La siguiente imagen muestra la regla MAPoco1001 y el mensaje de información:

Tip
Para obtener más información sobre el análisis de POCO, consulte la guía Analizar POCO.
Para obtener más información sobre las anotaciones POCO, consulta la guía POCOs en la documentación del controlador .NET/C#.
MAPoco2001
La regla MAPoco2001 evalúa su código en busca de configuraciones de serialización no admitidas especificadas en una declaración POCO.
Categoría |
|
Gravedad |
|
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 |
El siguiente código activa la regla MAPoco2001 para mostrar un mensaje que explica que el código incluye una configuración de serialización no válida en el campo Date:
public class Appointment { [] public decimal Date { get; set; } public string Doctor { get; set; } }
La siguiente imagen muestra la regla MAPoco2001 y el mensaje de información:

Tip
Para obtener más información sobre el análisis de POCO, consulte la guía Analizar POCO.
Para obtener más información sobre las anotaciones POCO, consulta la guía POCOs en la documentación del controlador .NET/C#.