ルールとメッセージの内容
Overview
このガイドでは、MongoDB C# Analyzer ルールと添付されたメッセージについて学習できます。 ルールはコードのさまざまな部分を評価し、特定の条件が満たされた場合はメッセージを返します。
たとえば、アナライザは LINQ 式を検出した場合、 ルールを適用する可能性があり、これにより IDE は同等の Query API 式を含むメッセージを表示します。 各ルールの重大度レベルは Info
またはWarning
で、メッセージが記録される場所に影響します。
ルールの説明
次のセクションでは、ルール カテゴリ、重大度レベル、対応するメッセージの説明など、各 C# Analyzer ルールについて説明します。 各セクションには、サンプル メッセージも含まれています。
MABuilders1001
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
ルールと情報メッセージが表示されています。
Tip
ビルダ式の詳細については、 ビルダ式の分析ガイドをご覧ください。
MABuilders2001
MABuilders2001
ルールは、サポートされていないビルダ式を検出し、サポートされていない式の変換エラーを表示します。
カテゴリ | MongoDB.Analyzer.Builders |
重大度 | Warning |
ノート | サポートされていないビルダ式の例については、 ソースコードテスト ファイルを参照してください。 |
次のコードではMABuilders2001
ルールをトリガーして、サポートされていないビルダー式を示すメッセージを表示します。
var filter = Builders<Book>.Filter.Eq(b => b.Price + 2, 1);
次の画像には、 MABuilders2001
ルールと情報メッセージが表示されています。
Tip
ビルダ式の詳細については、「ビルダ式の分析 」ガイドを参照してください。
MALINq1001
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
ルールと情報メッセージが表示されています。
Tip
LINQ 式の詳細については、「 LINQ 式の分析 」ガイドを参照してください。
MALINq2001
MALinq2001
ルールは、サポートされていない LINQ 式を検出し、サポートされていない式の変換エラーを表示します。
カテゴリ | 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 |
次のコードでは、 MALinq2001
ルールをトリガーして、サポートされていない LINQ 式を示すメッセージを表示します。
var results = queryableColl.Where(b => b.GetHashCode() == 1);
次の画像には、 MALinq2001
ルールと情報メッセージが表示されています。
Tip
LINQ 式の詳細については、「 LINQ 式の分析 」ガイドを参照してください。
MALINq2002
MALinq2002
ルールは、式が LINQ3 でのみサポートされているかどうかを検出し、同等のクエリ API 式を含むメッセージを表示します。
カテゴリ | 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 |
次のコードはMALinq2002
ルールをトリガーして、サポートされている LINQ3 式を示すメッセージを表示します。
var results = queryableColl .Where(b => b.Price + 1 == 21) .Where(b => "Re-release: " + b.Title == "Re-release: Siddhartha");
次の画像には、 MALinq2002
ルールと情報メッセージが表示されています。
Tip
LINQ 式の詳細については、「 LINQ 式の分析 」ガイドを参照してください。
MAPoco1001
MAPoco1001
ルールは POCO 宣言のコードを評価し、サンプル インスタンスの JSON 表現を含むメッセージをトリガーします。 このルールは、 BsonIgnore
やBsonElement
などの一部の BSON シリアル化注釈を評価します。
カテゴリ | MongoDB.Analyzer.Poco |
重大度 | Info |
ノート | このルールは、 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 |
重大度 | 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 |
次のコードでは、 MAPoco2001
ルールをトリガーして、コードのDate
フィールドに無効なシリアル化設定が含まれていることを説明するメッセージを表示します。
public class Appointment { [ ] public decimal Date { get; set; } public string Doctor { get; set; } }
次の画像には、 MAPoco2001
ルールと情報メッセージが表示されています。