Docs 菜单
Docs 主页
/
MongoDB C# Analyzer

规则和消息内容

在此页面上

  • Overview
  • 规则说明
  • MABuilders1001
  • MABuilders2001
  • MALinq1001
  • MALinq2001
  • MALinq2002
  • MAPoco1001
  • MAPoco2001

在本指南中,您可以了解 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
注意
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

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

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

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

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

提示

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

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,

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

带有 MALinq2002 规则消息的 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
注意
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

以下代码会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指南

后退

POCO