规则与消息内容
概述
在本指南中,您可以了解 MongoDB C# 分析器的规则和附加消息。规则评估代码的不同部分,如果满足特定条件,则返回消息。
例如,分析器可能会应用规则,如果它检测到 LINQ 表达式,则导致您的 IDE 显示包含等效查询 API 表达式的消息。每个规则都具有影响消息可能记录位置的信息
或警告
严重级别。
规则说明
以下各节描述了每个C#分析规则,包括规则类别、严重级别和对应消息的描述。每个节还包含一个示例消息。
MABuilders1001
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
规则和信息消息

提示
要了解更多关于构建器表达式的信息,请参阅分析构建器表达式指南。
MABuilders2001
MABuilders2001
规则检测不支持的构建器表达式,并显示不支持的表达式的翻译错误。
类别 | MongoDB.Analyzer.Builders |
严重级别 | 警告 |
备注 | 要查看不支持的构建器表达式的示例,请参阅源代码测试文件. |
以下代码触发 MABuilders2001
规则显示一条消息,显示不支持的构建器表达式。
var filter = Builders<Book>.Filter.Eq(b => b.Price + 2, 1);
以下图像显示了 MABuilders2001
规则和信息消息。

提示
要了解更多关于构建器表达式的信息,请参阅分析构建器表达式指南。
MALinq1001
MALinq1001
规则评估你的 LINQ 表达式代码,并触发包含等效查询 API 表达式的消息。
类别 | MongoDB.Analyzer.LINQ |
严重级别 | 信息 |
备注 | 此规则可能根据您的 DefaultLinqVersion 配置设置值不同而有所不同。要了解更多信息,请参阅分析器配置选项。 |
以下代码触发 MALinq1001
规则以显示显示等效查询 API 表达式的消息。
var results = queryableColl .Where(b => b.Genre == "Theory") .OrderBy(b => b.Price);
以下图像显示了 MALinq1001
规则和信息消息。

提示
要了解更多关于 LINQ 表达式的信息,请参阅分析 LINQ 表达式指南。
MALinq2001
MALinq2001
规则检测不支持的 LINQ 表达式并显示不支持的表达式的翻译错误。
类别 | MongoDB.Analyzer.LINQ |
严重级别 | 警告 |
备注 |
以下代码触发 MALinq2001
规则以显示显示不支持的 LINQ 表达式的消息
var results = queryableColl.Where(b => b.GetHashCode() == 1);
以下图像显示了 MALinq2001
规则和信息消息

提示
要了解更多关于 LINQ 表达式的信息,请参阅分析 LINQ 表达式指南。
MALinq2002
MALinq2002
规则检测一个表达式是否仅在 LINQ3 中受支持,并显示包含等效 Query API 表达式的消息。
类别 | MongoDB.Analyzer.LINQ |
严重级别 | 警告 |
备注 |
以下代码触发 MALinq2002
规则显示支持 LINQ3 表达式的消息
var results = queryableColl .Where(b => b.Price + 1 == 21) .Where(b => "Re-release: " + b.Title == "Re-release: Siddhartha");
以下图片显示了 MALinq2002
规则和信息消息

提示
要了解更多关于 LINQ 表达式的信息,请参阅分析 LINQ 表达式指南。
MAPoco1001
MAPoco1001
规则评估您的代码中的 POCO 声明,并触发包含样本实例 JSON 表示的消息。此规则评估一些 BSON 序列化注释,如 BsonIgnore
和 BsonElement
。
类别 | MongoDB.Analyzer.Poco |
严重级别 | 信息 |
备注 | 此规则可能根据您的 PocoAnalysisVerbosity 配置设置值而有所不同。有关更多信息,请参阅分析器配置选项。 |
以下代码触发 MAPoco1001
规则显示样本 POCO 的 JSON 表示
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; } }
以下图片显示了 MAPoco1001
规则和信息消息

MAPoco2001
MAPoco2001
规则评估 POCO 声明中指定的不支持的序列化设置。
类别 | MongoDB.Analyzer.Poco |
严重级别 | 警告 |
备注 |
以下代码触发了 MAPoco2001
规则,显示一条消息,说明代码中包含在 Date
字段上的无效序列化设置
public class Appointment { [ ] public decimal Date { get; set; } public string Doctor { get; set; } }
以下图像显示了 MAPoco2001
规则和信息消息
