规则和消息内容
Overview
在本指南中,您可以了解 MongoDB C# Analyzer 规则和附加消息。 规则会评估代码的不同部分,并在满足特定条件时返回一条消息。
例如,分析器在检测到 LINQ 表达式时可能会应用规则,这会导致 IDE 显示包含等效查询 API 表达式的消息。 每条规则的严重性级别为 Info
或Warning
,会影响记录消息的位置。
规则说明
以下部分描述了每个 C# 分析器规则,包括规则类别、严重性级别和相应消息的描述。 每个部分还包括一条示例消息。
MABuilders1001
MABuilders1001
规则会对您的代码中的构建器表达式进行评估,并Atlas Triggers一条包含等效 Query API 表达式的消息。
category | MongoDB.Analyzer.Builders |
严重性 | Info |
注意 | 无 |
以下代码会Atlas TriggersMABuilders1001
规则显示一条消息,其中显示等效的 查询 API 表达式:
var filter = Builders<Book>.Filter.Eq(b => b.Genre, "Theory") & Builders<Book>.Filter.Gte(b => b.Price, 10);
下图显示了MABuilders1001
规则和信息消息:
提示
要学习;了解有关构建者表达式的详情,请参阅分析构建器表达式指南。
MABuilders2001
MABuilders2001
规则会检测不支持的构建器表达式,并显示不支持表达式的转换错误。
category | MongoDB.Analyzer.Builders |
严重性 | Warning |
注意 | 要查看不支持的构建者表达式的示例,请参阅 源代码测试文件。 |
以下代码会Atlas TriggersMABuilders2001
规则,以显示一条消息,说明不支持的构建器表达式:
var filter = Builders<Book>.Filter.Eq(b => b.Price + 2, 1);
下图显示了MABuilders2001
规则和信息消息:
提示
要了解有关构建器表达式的更多信息,请参阅分析构建器表达式指南。
MALinq1001
MALinq1001
规则评估代码中的 LINQ 表达式,并Atlas Triggers包含等效 查询 API 表达式的消息。
category | MongoDB.Analyzer.LINQ |
严重性 | Info |
注意 | 此规则的适用情况可能会有所不同,具体取决于 DefaultLinqVersion 配置设置的值。 要了解更多信息,请参阅分析器配置选项。 |
以下代码会Atlas TriggersMALinq1001
规则显示一条消息,其中显示等效的 查询 API 表达式:
var results = queryableColl .Where(b => b.Genre == "Theory") .OrderBy(b => b.Price);
下图显示了MALinq1001
规则和信息消息:
提示
要了解有关 LINQ 表达式的更多信息,请参阅分析 LINQ 表达式指南。
MALinq2001
MALinq2001
规则会检测不支持的 LINQ 表达式,并显示不支持表达式的转换错误。
category | MongoDB.Analyzer.LINQ |
严重性 | Warning |
注意 | 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 |
以下代码会Atlas TriggersMALinq2001
规则,以显示一条消息,说明不支持的 LINQ 表达式:
var results = queryableColl.Where(b => b.GetHashCode() == 1);
下图显示了MALinq2001
规则和信息消息:
提示
要了解有关 LINQ 表达式的更多信息,请参阅分析 LINQ 表达式指南。
MALinq2002
MALinq2002
规则检测表达式是否仅在 LINQ3 中受支持,并显示一条包含等效查询 API 表达式的消息。
category | MongoDB.Analyzer.LINQ |
严重性 | Warning |
注意 | 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 |
以下代码会Atlas TriggersMALinq2002
规则显示一条消息,说明支持的 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 声明,并Atlas Triggers一条包含示例实例的 JSON 表示形式的消息。此规则评估某些 BSON 序列化注解,例如BsonIgnore
和BsonElement
。
category | MongoDB.Analyzer.Poco |
严重性 | Info |
注意 | 此规则的适用情况可能会有所不同,具体取决于 PocoAnalysisVerbosity 配置设置的值。 要了解更多信息,请参阅分析器配置选项。 |
以下代码会Atlas TriggersMAPoco1001
规则以显示一条消息,该消息显示示例 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 声明中指定的不支持的序列化设置。
category | MongoDB.Analyzer.Poco |
严重性 | Warning |
注意 | 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 |
以下代码会Atlas TriggersMAPoco2001
规则显示一条消息,解释该代码在字段Date
上包含无效的序列化设置:
public class Appointment { [ ] public decimal Date { get; set; } public string Doctor { get; set; } }
下图显示了MAPoco2001
规则和信息消息: