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 u Warning que afecta dónde podría registrarse 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.
MABuilders1001
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 un mensaje de información:

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

Tip
Para obtener más información sobre las expresiones de desarrolladores, consulta la guía Analizar expresiones de desarrolladores.
MALinq1001
La regla MALinq1001 evalúa tu código en busca de expresiones LINQ y activa un mensaje que contiene la expresión equivalente de la API de Query.
Categoría |
|
Gravedad |
|
notas | Esta regla puede aplicarse de manera diferente según el valor de tu configuración |
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 un mensaje de información:

Tip
Para obtener más información sobre las expresiones LINQ, consulta la guía Analizar expresiones LINQ.
MALinq2001
La regla MALinq2001 detecta expresiones LINQ no soportadas y muestra un error de traducción de la expresión no soportada.
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 un mensaje de información:

Tip
Para obtener más información sobre las expresiones LINQ, consulta la guía Analizar expresiones LINQ.
MAPoca1001
La regla MAPoco1001 evalúa tu código para las declaraciones de POCO y activa 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 puede aplicarse de manera diferente según el valor de tu configuración |
El siguiente código activa la regla MAPoco1001 para mostrar un mensaje que muestra la representación en 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 un mensaje de información:

Tip
Para obtener más información sobre el análisis POCO, consulta la guía Analizar POCOs.
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 tu 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 un mensaje de información:

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