質問: await _context.Menus.FirstOrDefaultAsync(m => m.Menu_Name.ToLower().Contains(context.Message.Content)).ConfigureAwait(false); await context.Channel.SendMessageAsync(menu.Status.ToString()).ConfigureAwait(false); } ```
回答: これはばかげた間違いでしたが、一見するとそれほど気になりませんでした。 `string message = context.Message.Content.Replace(context.Message.Content.Substring(0, (context.Command.Name.Length + 1)), string.Empty);` `context.Message.Content` 、「Content」の値は`"!status testmenu"` `context.Command.Name`の値は`"status"`で、最初の "!"を削除するためにサブストリングに+ 1を追加しています。同様に。だから今文字列は値`" testmenu"`持っています ここでわかるように、私はこの文字列をトリミングしていないため、最初に空白が残っています。 ビジュアルスタジオの人間の目には、デバッグ中にマウスをホバーすると、変数の上では変数**が同一に見える可能性**がありますが、実際には最初に空白があったため**、そうで**はあり**ません。**データをクエリします。 文字列をトリミングしてクエリを実行すると、すべてが正常に機能しました。