C# 我一直都有空引用,为什么?

C# 我一直都有空引用,为什么?,c#,.net-core,telegram-bot,C#,.net Core,Telegram Bot,我有两个几乎相同的代码: 这是给喜欢的人的: private async Task HandleCallbackQuery(CallbackQuery callbackQuery, CancellationToken cancellationToken) { switch (callbackQuery.Data) { // This is the case for Likes case "post_id like": {

我有两个几乎相同的代码: 这是给喜欢的人的:

private async Task HandleCallbackQuery(CallbackQuery callbackQuery, CancellationToken cancellationToken)
{
    switch (callbackQuery.Data)
    {
        // This is the case for Likes
        case "post_id like":
        {
            var postData = _context.Posts
                .FirstOrDefault(x => x.MessageId == callbackQuery.Message.MessageId);
            //var postData = conn.ExecuteReader($"SELECT * FROM PostData AS pd WHERE pd.MessageId = '{ callbackQuery.Message.MessageId }'").Parse<PostData>().FirstOrDefault();
            if (postData == null)
            {
                return;
            }
            var reader = _context.Votes
                .FirstOrDefault(x => x.VoterId == callbackQuery.From.Id && x.PostDataId == postData.Id);
            var voteData = reader;
            // ...
        }
        // This is the case for Dislikes:
        case "post_id dislike":
        {
            var postData = _context.Posts
                .FirstOrDefault(x => x.MessageId == callbackQuery.Message.MessageId);
            //var postData = conn.ExecuteReader("SELECT * FROM PostData AS pd WHERE pd.MessageId = @MessageId", new { callbackQuery.Message.MessageId }).Parse<PostData>().FirstOrDefault();

            if (postData == null)
            {
                return;
            }

            var reader = _context.Votes
                .FirstOrDefault(x => x.VoterId == callbackQuery.From.Id && x.PostDataId == postData.Id);
            //conn.ExecuteReader("SELECT * FROM VoteData AS vd WHERE vd.VoterId = @VoterId AND vd.PostDataId = @PostDataId", new { VoterId = callbackQuery.From.Id, PostDataId = postData.Id });

            var voteData = reader;
            // ...
        }
    }
}
这段代码第一次正常运行,但第二次我总是在postdatain dislikes have NullReferenceException中,我不知道为什么://

问题是_context.Posts没有值

如果_context.Posts包含null,则不会得到NullReferenceException

如何解决

检查_context.Posts

如果它是一个属性,让它有一个默认值

或者,如果它是一个字段,那么首先让它为null


如果您可以添加有关帖子的更多信息,请添加它…

当您尝试访问空值上的方法或属性时,可能会出现重复的NRE。您没有发布实际的异常或提到异常发生的位置,因此只能猜测。调试代码并检查错误所在行中的变量。此外,重复问题详细解释了调试NRE的原因和技术-这是本地照片重复问题。说明书在那里。您可以比其他任何人都更快地调试它。提示:哪个变量为空?这很可能不是原因。