Docs Menu
Docs Home
/ /

Reglas y contenido del mensaje

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.

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.

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

MongoDB.Analyzer.Builders

Gravedad

Info

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:

Captura de pantalla de la expresión del generador con el mensaje de regla MABuilders1001

Tip

Para obtener más información sobre las expresiones de constructores, consulte la Guía deanálisis de expresiones de constructores.

La regla MABuilders2001 detecta expresiones de constructores no compatibles y muestra un error de traducción de la expresión no compatible.

Categoría

MongoDB.Analyzer.Builders

Gravedad

Warning

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:

Captura de pantalla de la expresión del generador con el mensaje de regla MABuilders2001

Tip

Para obtener más información sobre las expresiones de constructores, consulte la guía Analizar expresiones de constructores.

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

MongoDB.Analyzer.LINQ

Gravedad

Info

notas

Esta regla podría aplicarse de forma diferente según el valor de su DefaultLinqVersion configuración. Para obtener más información, consulte las Opciones de configuración del analizador.

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:

Captura de pantalla de la expresión LINQ con el mensaje de regla MALinq1001

Tip

Para obtener más información sobre las expresiones LINQ, consulte la guía Analizar expresiones LINQ.

La regla MALinq2001 detecta expresiones LINQ no compatibles y muestra un error de traducción de la expresión no compatible.

Categoría

MongoDB.Analyzer.LINQ

Gravedad

Warning

notas

This rule might apply differently depending on the value of
your DefaultLinqVersion configuration setting. To learn more,

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:

Captura de pantalla de la expresión LINQ con el mensaje de regla MALinq2001

Tip

Para obtener más información sobre las expresiones LINQ, consulte la guía Analizar expresiones LINQ.

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

MongoDB.Analyzer.Poco

Gravedad

Info

notas

Esta regla podría aplicarse de forma diferente según el valor de su PocoAnalysisVerbosity configuración. Para obtener más información, consulte las Opciones de configuración del analizador.

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
{
[BsonId]
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
[BsonIgnore]
public double Income { get; set; }
}

La siguiente imagen muestra la regla MAPoco1001 y el mensaje de información:

Captura de pantalla de la expresión del generador con el mensaje de regla MAPoco1001

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

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

MongoDB.Analyzer.Poco

Gravedad

Warning

notas

This rule might apply differently depending on the value of
your PocoAnalysisVerbosity configuration setting. To learn more,

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
{
[BsonDateTimeOptions(DateOnly = true, Kind = DateTimeKind.Local)]
public decimal Date { get; set; }
public string Doctor { get; set; }
}

La siguiente imagen muestra la regla MAPoco2001 y el mensaje de información:

Captura de pantalla de la expresión del generador con el mensaje de regla MAPoco2001

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

Volver

POCOs

En esta página