对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

规则和消息内容

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

例如,分析器在检测到 LINQ 表达式时可能会应用规则,这会导致 IDE 显示包含等效查询 API 表达式的消息。 每条规则的严重性级别为InfoWarning ,会影响记录消息的位置。

以下部分描述了每个 C# 分析器规则,包括规则类别、严重性级别和相应消息的描述。 每个部分还包括一条示例消息。

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规则和信息消息:

包含 MABuilders1001 规则消息的构建器表达式的屏幕截图

提示

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

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

category

MongoDB.Analyzer.Builders

严重性

Warning

注意

要查看不支持的构建者表达式的示例,请参阅源代码测试文件。

以下代码会Atlas TriggersMABuilders2001规则,以显示一条消息,说明不支持的构建器表达式:

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

下图显示了MABuilders2001规则和信息消息:

包含 MABuilders2001 规则消息的构建器表达式的屏幕截图

提示

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

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规则和信息消息:

带有 MALinq1001 规则消息的 LINQ 表达式的屏幕截图

提示

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

MALinq2001规则会检测不支持的 LINQ 表达式,并显示不支持表达式的转换错误。

category

MongoDB.Analyzer.LINQ

严重性

Warning

注意

此规则的应用可能会有所不同,具体取决于
DefaultLinqVersion配置设置的值。要学习;了解更多信息,请参阅分析器配置选项。要查看不支持的


LINQ
表达式的示例,请参阅源代码测试文件。

以下代码会Atlas TriggersMALinq2001规则,以显示一条消息,说明不支持的 LINQ 表达式:

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

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

带有 MALinq2001 规则消息的 LINQ 表达式的屏幕截图

提示

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

MAPoco1001规则评估您的代码中的 POCO 声明,并Atlas Triggers一条包含示例实例的 JSON 表示形式的消息。此规则评估某些 BSON 序列化注解,例如BsonIgnoreBsonElement

category

MongoDB.Analyzer.Poco

严重性

Info

注意

此规则的适用情况可能会有所不同,具体取决于PocoAnalysisVerbosity配置设置的值。 要了解更多信息,请参阅分析器配置选项。

以下代码会Atlas TriggersMAPoco1001规则以显示一条消息,该消息显示示例 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规则和信息消息:

包含 MAPoco1001 规则消息的构建器表达式的屏幕截图

提示

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

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

MAPoco2001规则会评估您的代码是否存在 POCO 声明中指定的不支持的序列化设置。

category

MongoDB.Analyzer.Poco

严重性

Warning

注意

此规则的应用可能会有所不同,具体取决于
PocoAnalysisVerbosity配置设置的值。要学习;了解更多信息,请参阅分析器配置选项。要查看不支持的


POCO
声明的示例,请参阅源代码测试文件。

以下代码会Atlas TriggersMAPoco2001规则显示一条消息,解释该代码在字段Date上包含无效的序列化设置:

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

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

包含 MAPoco2001 规则消息的构建器表达式的屏幕截图

提示

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

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