C# 值中引用类型的可空性不为’;不匹配目标类型

C# 值中引用类型的可空性不为’;不匹配目标类型,c#,C#,我有一个游戏将为空引用类型和实体框架核心。该方法应该异步返回一个可为null的用户,但编译器会抱怨 CS8619 Nullability of reference types in value doesn’t match target type. 源代码如下所示 public class UserRepository : IUserRepository { private readonly ApplicationDbContext DbContext; public User

我有一个游戏将为空引用类型和实体框架核心。该方法应该异步返回一个可为null的
用户
,但编译器会抱怨

CS8619
Nullability of reference types in value doesn’t match target type.
源代码如下所示

public class UserRepository : IUserRepository
{
    private readonly ApplicationDbContext DbContext;

    public UserRepository(ApplicationDbContext dbContext)
    {
        DbContext = dbContext;
    }

    public Task<User?> GetByEmailAddress(string emailAddress) =>
        DbContext.Users.SingleOrDefaultAsync(x => x.EmailAddress == emailAddress);
}

有没有另一种方法可以做到这一点而不必使我的方法
异步

我认为这是Github为Roslyn编译器指定的一个问题:


为什么您的用户还不能为空?(为什么您声明该方法返回
User?
?)可能是
IUserRepository
承诺了
Task
,而不是
Task
?@CaiusJard我想OP是在玩弄新的c#8.0特性可为空的引用类型:@marcGravel-No,接口上的方法签名与类相同。我用更多有趣的信息更新了这个问题。
    public async Task<User?> GetByEmailAddress(string emailAddress) =>
        await DbContext.Users.SingleOrDefaultAsync(x => x.EmailAddress == emailAddress);