Overview
En esta guía, puede aprender sobre las reglas del C# Analyzer de MongoDB y los mensajes adjuntos. Una regla evalúa diferentes partes de tu código y devuelve un mensaje si se cumple una condición específica.
Por ejemplo, el Analizador puede aplicar una regla si detecta una expresión LINQ, lo que hace que tu IDE muestre un mensaje que contiene la expresión equivalente de la API de Query. Cada regla tiene un nivel de severidad de
Info u Warning que afecta dónde podría registrarse el mensaje.
Descripciones de reglas
Las siguientes secciones describen cada regla del C# Analyzer, incluida la categoría de la regla, el nivel de gravedad y la descripción del mensaje correspondiente. Cada sección también incluye un mensaje de ejemplo.
MABuilders1001
La regla MABuilders1001 evalúa tu código para expresiones de desarrolladores y activa un mensaje que contiene la expresión equivalente de la API de query.
Categoría |
|
Gravedad |
|
notas | Ninguno |
El siguiente código activa la regla MABuilders1001 para mostrar un mensaje que muestra la expresión equivalente de la API de Query:
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 Analizar las expresiones de desarrolladores guía.
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 equivalente de la API de Query:
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.
MALinq2002
La regla MALinq2002 detecta si una expresión solo se admite en LINQ3 y muestra un mensaje que contiene la expresión equivalente de la API de query.
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 supported LINQ3 expressions, see the |
El siguiente código activa la regla MALinq2002 para mostrar un mensaje que muestra la expresión LINQ3 admitida:
var results = queryableColl .Where(b => b.Price + 1 == 21) .Where(b => "Re-release: " + b.Title == "Re-release: Siddhartha");
La siguiente imagen muestra la regla MALinq2002 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#.