文档菜单
文档首页
/
MongoDB C# 分析器

规则与消息内容

在本页

  • 概述
  • 规则描述
  • MABuilders1001
  • MABuilders2001
  • MALinq1001
  • MALinq2001
  • MALinq2002
  • MAPoco1001
  • MAPoco2001

在本指南中,您可以了解 MongoDB C# 分析器的规则和附加消息。规则评估代码的不同部分,如果满足特定条件,则返回消息。

例如,分析器可能会应用规则,如果它检测到 LINQ 表达式,则导致您的 IDE 显示包含等效查询 API 表达式的消息。每个规则都具有影响消息可能记录位置的信息警告严重级别。

以下各节描述了每个C#分析规则,包括规则类别、严重级别和对应消息的描述。每个节还包含一个示例消息。

MABuilders1001规则评估您的代码中的构建器表达式,并触发包含等效查询API表达式的消息。

类别
MongoDB.Analyzer.Builders
严重级别
信息
备注

以下代码触发MABuilders1001规则,显示等效查询API表达式

var filter = Builders<Book>.Filter.Eq(b => b.Genre, "Theory") &
Builders<Book>.Filter.Gte(b => b.Price, 10);

以下图片显示MABuilders1001规则和信息消息

Screenshot of builder expression with MABuilders1001 rule message

提示

要了解更多关于构建器表达式的信息,请参阅分析构建器表达式指南。

MABuilders2001规则检测不支持的构建器表达式,并显示不支持的表达式的翻译错误。

类别
MongoDB.Analyzer.Builders
严重级别
警告
备注
要查看不支持的构建器表达式的示例,请参阅源代码测试文件.

以下代码触发 MABuilders2001 规则显示一条消息,显示不支持的构建器表达式。

var filter = Builders<Book>.Filter.Eq(b => b.Price + 2, 1);

以下图像显示了 MABuilders2001 规则和信息消息。

Screenshot of builder expression with MABuilders2001 rule message

提示

要了解更多关于构建器表达式的信息,请参阅分析构建器表达式指南。

MALinq1001 规则评估你的 LINQ 表达式代码,并触发包含等效查询 API 表达式的消息。

类别
MongoDB.Analyzer.LINQ
严重级别
信息
备注
此规则可能根据您的 DefaultLinqVersion 配置设置值不同而有所不同。要了解更多信息,请参阅分析器配置选项

以下代码触发 MALinq1001 规则以显示显示等效查询 API 表达式的消息。

var results = queryableColl
.Where(b => b.Genre == "Theory")
.OrderBy(b => b.Price);

以下图像显示了 MALinq1001 规则和信息消息。

Screenshot of LINQ expression with MALinq1001 rule message

提示

要了解更多关于 LINQ 表达式的信息,请参阅分析 LINQ 表达式指南。

MALinq2001 规则检测不支持的 LINQ 表达式并显示不支持的表达式的翻译错误。

类别
MongoDB.Analyzer.LINQ
严重级别
警告
备注
此规则可能根据
您的 DefaultLinqVersion 配置设置值不同而有所不同。
要了解更多信息,请参阅分析器配置选项

要查看不支持的 LINQ 表达式的示例,请参阅

以下代码触发 MALinq2001 规则以显示显示不支持的 LINQ 表达式的消息

var results = queryableColl.Where(b => b.GetHashCode() == 1);

以下图像显示了 MALinq2001 规则和信息消息

Screenshot of LINQ expression with MALinq2001 rule message

提示

要了解更多关于 LINQ 表达式的信息,请参阅分析 LINQ 表达式指南。

MALinq2002 规则检测一个表达式是否仅在 LINQ3 中受支持,并显示包含等效 Query API 表达式的消息。

类别
MongoDB.Analyzer.LINQ
严重级别
警告
备注
此规则可能根据
您的 DefaultLinqVersion 配置设置值不同而有所不同。
要了解更多信息,请参阅分析器配置选项

要查看受支持的 LINQ3 表达式的示例,请参阅

以下代码触发 MALinq2002 规则显示支持 LINQ3 表达式的消息

var results = queryableColl
.Where(b => b.Price + 1 == 21)
.Where(b => "Re-release: " + b.Title == "Re-release: Siddhartha");

以下图片显示了 MALinq2002 规则和信息消息

Screenshot of LINQ expression with MALinq2002 rule message

提示

要了解更多关于 LINQ 表达式的信息,请参阅分析 LINQ 表达式指南。

MAPoco1001 规则评估您的代码中的 POCO 声明,并触发包含样本实例 JSON 表示的消息。此规则评估一些 BSON 序列化注释,如 BsonIgnoreBsonElement

类别
MongoDB.Analyzer.Poco
严重级别
信息
备注
此规则可能根据您的 PocoAnalysisVerbosity 配置设置值而有所不同。有关更多信息,请参阅分析器配置选项。

以下代码触发 MAPoco1001 规则显示样本 POCO 的 JSON 表示

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; }
}

以下图片显示了 MAPoco1001 规则和信息消息

Screenshot of builder expression with MAPoco1001 rule message

提示

要了解更多关于 POCO 分析的信息,请参阅分析 POCOs 指南。

要了解更多关于 POCO 注释的信息,请参阅 .NET/C# 驱动程序文档中的 POCOs 指南

MAPoco2001 规则评估 POCO 声明中指定的不支持的序列化设置。

类别
MongoDB.Analyzer.Poco
严重级别
警告
备注
此规则可能根据
您的 PocoAnalysisVerbosity 配置设置。要了解更多信息,请参阅
要了解更多信息,请参阅分析器配置选项

查看不支持的 POCO 声明示例,请参阅

以下代码触发了 MAPoco2001 规则,显示一条消息,说明代码中包含在 Date 字段上的无效序列化设置

public class Appointment
{
[BsonDateTimeOptions(DateOnly = true, Kind = DateTimeKind.Local)]
public decimal Date { get; set; }
public string Doctor { get; set; }
}

以下图像显示了 MAPoco2001 规则和信息消息

Screenshot of builder expression with MAPoco2001 rule message

提示

要了解更多关于 POCO 分析的信息,请参阅分析 POCOs 指南。

要了解更多关于 POCO 注释的信息,请参阅 .NET/C# 驱动程序文档中的 POCOs 指南

返回

POCO