ルールとメッセージの内容
Overview
このガイドでは、MongoDB C# Analyzer ルールと添付されたメッセージについて学習できます。 ルールはコードのさまざまな部分を評価し、特定の条件が満たされた場合はメッセージを返します。
たとえば、アナライザは LINQ 式を検出した場合、 ルールを適用する可能性があり、これにより IDE は同等の Query API 式を含むメッセージを表示します。 各ルールの重大度レベルはInfo
またはWarning
で、メッセージが記録される可能性がある場所に影響します。
ルールの説明
次のセクションでは、ルール カテゴリ、重大度レベル、対応するメッセージの説明など、各 C# Analyzer ルールについて説明します。 各セクションには、サンプル メッセージも含まれています。
MABuilders1001
MABuilders1001
ルールはビルダー式のコードを評価し、同等の Query API 式を含むメッセージをトリガーします。
カテゴリ |
|
重大度 |
|
ノート | なし |
次のコードではMABuilders1001
ルールをトリガーして、同等の Query API 式を示すメッセージを表示します。
var filter = Builders<Book>.Filter.Eq(b => b.Genre, "Theory") & Builders<Book>.Filter.Gte(b => b.Price, 10);
次の画像には、 MABuilders1001
ルールと情報メッセージが表示されています。
![Screenshot of builder expression with MABuilders1001 rule message](/ja-jp/docs/mongodb-analyzer/current/static/3a76521cd93af2d72c50d3d3b04cc399/10eae/MABuilders1001-rule.webp)
Tip
ビルダ式の詳細については、「ビルダ式の分析 」ガイドを参照してください。
MABuilders2001
MABuilders2001
ルールは、サポートされていないビルダ式を検出し、サポートされていない式の変換エラーを表示します。
カテゴリ |
|
重大度 |
|
ノート | サポートされていないビルダ式の例については、 ソースコードのテストファイルを参照してください。 |
次のコードではMABuilders2001
ルールをトリガーして、サポートされていないビルダー式を示すメッセージを表示します。
var filter = Builders<Book>.Filter.Eq(b => b.Price + 2, 1);
次の画像には、 MABuilders2001
ルールと情報メッセージが表示されています。
![Screenshot of builder expression with MABuilders2001 rule message](/ja-jp/docs/mongodb-analyzer/current/static/f7936c9d7f3dbb50f4fc371b9ca19e26/4c323/MABuilders2001-rule.webp)
Tip
ビルダ式の詳細については、「ビルダ式の分析 」ガイドを参照してください。
MALINq1001
MALinq1001
ルールは、LINQ 式のコードを評価し、同等の Query API 式を含むメッセージをトリガーします。
カテゴリ |
|
重大度 |
|
ノート | このルールは、 |
次のコードではMALinq1001
ルールをトリガーして、同等の Query API 式を示すメッセージを表示します。
var results = queryableColl .Where(b => b.Genre == "Theory") .OrderBy(b => b.Price);
次の画像には、 MALinq1001
ルールと情報メッセージが表示されています。
![Screenshot of LINQ expression with MALinq1001 rule message](/ja-jp/docs/mongodb-analyzer/current/static/f3aba77d2c10ee522e0cd463623e80b4/d7052/MALinq1001-rule.webp)
Tip
LINQ 式の詳細については、「 LINQ 式の分析 」ガイドを参照してください。
MALINq2001
MALinq2001
ルールは、サポートされていない LINQ 式を検出し、サポートされていない式の変換エラーを表示します。
カテゴリ |
|
重大度 |
|
ノート | 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
ルールと情報メッセージが表示されています。
![Screenshot of LINQ expression with MALinq2001 rule message](/ja-jp/docs/mongodb-analyzer/current/static/633d1092b33f6101d84fea624cabd56a/74f7b/MALinq2001-rule.webp)
Tip
LINQ 式の詳細については、「 LINQ 式の分析 」ガイドを参照してください。
MALINq2002
MALinq2002
ルールは、式が LINQ3 でのみサポートされているかどうかを検出し、同等のクエリ API 式を含むメッセージを表示します。
カテゴリ |
|
重大度 |
|
ノート | 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
ルールと情報メッセージが表示されています。
![Screenshot of LINQ expression with MALinq2002 rule message](/ja-jp/docs/mongodb-analyzer/current/static/46a6e13d5ca830259e005d945293e921/d0e0a/MALinq2002-rule.webp)
Tip
LINQ 式の詳細については、「 LINQ 式の分析 」ガイドを参照してください。
MAPoco1001
MAPoco1001
ルールは POCO 宣言のコードを評価し、サンプル インスタンスの JSON 表現を含むメッセージをトリガーします。 このルールは、 BsonIgnore
やBsonElement
などの一部の BSON シリアル化注釈を評価します。
カテゴリ |
|
重大度 |
|
ノート | このルールは、 |
次のコードは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
ルールと情報メッセージが表示されています。
![Screenshot of builder expression with MAPoco1001 rule message](/ja-jp/docs/mongodb-analyzer/current/static/c4bb3a2c151741d129332310cdfa2ea8/8981d/MAPoco1001-rule.webp)
MAPoco2001
MAPoco2001
ルールは、POCO 宣言に指定されたサポートされていないシリアル化設定のコードを評価します。
カテゴリ |
|
重大度 |
|
ノート | 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
ルールと情報メッセージが表示されています。
![Screenshot of builder expression with MAPoco2001 rule message](/ja-jp/docs/mongodb-analyzer/current/static/0099c6bb6b6c85cd4195ff0b9cb2f8c3/79ead/MAPoco2001-rule.webp)