Docs Menu
Docs Home
/
MongoDB C# Analyzer

ルールとメッセージの内容

項目一覧

  • Overview
  • ルールの説明
  • MABuilders1001
  • MABuilders2001
  • MALINq1001
  • MALINq2001
  • MALINq2002
  • MAPoco1001
  • MAPoco2001

このガイドでは、MongoDB C# Analyzer ルールと添付されたメッセージについて学習できます。 ルールはコードのさまざまな部分を評価し、特定の条件が満たされた場合はメッセージを返します。

たとえば、アナライザは LINQ 式を検出した場合、 ルールを適用する可能性があり、これにより IDE は同等の Query API 式を含むメッセージを表示します。 各ルールの重大度レベルは InfoまたはWarningで、メッセージが記録される場所に影響します。

次のセクションでは、ルール カテゴリ、重大度レベル、対応するメッセージの説明など、各 C# Analyzer ルールについて説明します。 各セクションには、サンプル メッセージも含まれています。

MABuilders1001ルールはビルダー式のコードを評価し、同等の Query API 式を含むメッセージをトリガーします。

カテゴリ
MongoDB.Analyzer.Builders
重大度
Info
ノート
なし

次のコードではMABuilders1001ルールをトリガーして、同等の Query API 式を示すメッセージを表示します。

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

次の画像には、 MABuilders1001ルールと情報メッセージが表示されています。

MABuilders1001 ルール メッセージを含むビルダ式のスクリーンショット

Tip

ビルダ式の詳細については、 ビルダ式の分析ガイドをご覧ください。

MABuilders2001ルールは、サポートされていないビルダ式を検出し、サポートされていない式の変換エラーを表示します。

カテゴリ
MongoDB.Analyzer.Builders
重大度
Warning
ノート
サポートされていないビルダ式の例については、 ソースコードテスト ファイルを参照してください。

次のコードではMABuilders2001ルールをトリガーして、サポートされていないビルダー式を示すメッセージを表示します。

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

次の画像には、 MABuilders2001ルールと情報メッセージが表示されています。

MABuilders2001 ルール メッセージを含むビルダ式のスクリーンショット

Tip

ビルダ式の詳細については、「ビルダ式の分析 」ガイドを参照してください。

MALinq1001ルールは、LINQ 式のコードを評価し、同等の Query API 式を含むメッセージをトリガーします。

カテゴリ
MongoDB.Analyzer.LINQ
重大度
Info
ノート
このルールは、 DefaultLinqVersion構成設定の値によって異なる場合があります。 詳細については、アナライザ構成オプション を参照してください。

次のコードではMALinq1001ルールをトリガーして、同等の Query API 式を示すメッセージを表示します。

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

次の画像には、 MALinq1001ルールと情報メッセージが表示されています。

MALinq1001 ルール メッセージを含む LINQ 式のスクリーンショット

Tip

LINQ 式の詳細については、「 LINQ 式の分析 」ガイドを参照してください。

MALinq2001ルールは、サポートされていない LINQ 式を検出し、サポートされていない式の変換エラーを表示します。

カテゴリ
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

次のコードでは、 MALinq2001ルールをトリガーして、サポートされていない LINQ 式を示すメッセージを表示します。

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

次の画像には、 MALinq2001ルールと情報メッセージが表示されています。

MALinq2001 ルール メッセージを含む LINQ 式のスクリーンショット

Tip

LINQ 式の詳細については、「 LINQ 式の分析 」ガイドを参照してください。

MALinq2002ルールは、式が LINQ3 でのみサポートされているかどうかを検出し、同等のクエリ API 式を含むメッセージを表示します。

カテゴリ
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

次のコードはMALinq2002ルールをトリガーして、サポートされている LINQ3 式を示すメッセージを表示します。

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

次の画像には、 MALinq2002ルールと情報メッセージが表示されています。

MALinq2002 ルール メッセージを含む LINQ 式のスクリーンショット

Tip

LINQ 式の詳細については、「 LINQ 式の分析 」ガイドを参照してください。

MAPoco1001ルールは POCO 宣言のコードを評価し、サンプル インスタンスの JSON 表現を含むメッセージをトリガーします。 このルールは、 BsonIgnoreBsonElementなどの一部の BSON シリアル化注釈を評価します。

カテゴリ
MongoDB.Analyzer.Poco
重大度
Info
ノート
このルールは、 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ルールと情報メッセージが表示されています。

MAPoco1001 ルール メッセージを含むビルダ式のスクリーンショット

Tip

POCO 分析の詳細については、 POCO の分析ガイドを参照してください。

POCO 注釈の詳細については、.NET/C# ドライバーのドキュメントの POCOガイドを参照してください。

MAPoco2001ルールは、POCO 宣言に指定されたサポートされていないシリアル化設定のコードを評価します。

カテゴリ
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

次のコードでは、 MAPoco2001ルールをトリガーして、コードのDateフィールドに無効なシリアル化設定が含まれていることを説明するメッセージを表示します。

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

次の画像には、 MAPoco2001ルールと情報メッセージが表示されています。

MAPoco2001 ルール メッセージを含むビルダ式のスクリーンショット

Tip

POCO 分析の詳細については、 POCO の分析ガイドを参照してください。

POCO 注釈の詳細については、.NET/C# ドライバーのドキュメントの POCOガイドを参照してください。

戻る

POCO