C# 如何使用外键获取具有EFcore的复杂对象?
我正在使用asp net core 5开发web API! 我有一个问题,我用EFCORE创建数据库,我想查询一个有外键的对象 这是我的密码:C# 如何使用外键获取具有EFcore的复杂对象?,c#,api,asp.net-core,web,entity-framework-core,C#,Api,Asp.net Core,Web,Entity Framework Core,我正在使用asp net core 5开发web API! 我有一个问题,我用EFCORE创建数据库,我想查询一个有外键的对象 这是我的密码: public long RefreshTokenId { get; set; } public string JwtTokenId { get; set;} public User user { get; set; } public Int64 expirationTime { get; set; } public
public long RefreshTokenId { get; set; }
public string JwtTokenId { get; set;}
public User user { get; set; }
public Int64 expirationTime { get; set; }
public string Token { get; set; }
public bool Revoked { get; set; }
在这个类中,根据efcore文档,我使用用户对象作为一个具有外键的一对一关系的对象
我的问题是:
public async Task<long> RefreshToken(RefreshRequest refreshRequest)
{
RefreshToken refreshToken = await Task.Run(() => {
return _appContext.refreshTokens.SingleOrDefault(x => x.Token ==
refreshRequest.refreshToken);
});
return refreshToken.user.UserId;
}
公共异步任务刷新令牌(刷新请求)
{
RefreshToken RefreshToken=等待任务。运行(()=>{
return appContext.refreshTokens.SingleOrDefault(x=>x.Token==
refreshRequest.refreshToken);
});
返回refreshToken.user.UserId;
}
当我运行此函数时,会引发空指针异常!
有人能告诉我如何用efcore检索用户对象吗?试试看
public async Task<long> RefreshToken(RefreshRequest refreshRequest)
{
RefreshToken refreshToken = await Task.Run(() => {
return _appContext.refreshTokens.Where(x => x.Token ==
refreshRequest.refreshToken).SingleOrDefault();
});
return refreshToken.user.UserId;
}
公共异步任务刷新令牌(刷新请求)
{
RefreshToken RefreshToken=等待任务。运行(()=>{
返回_appContext.refreshttokens.Where(x=>x.Token==
refreshRequest.refreshToken).SingleOrDefault();
});
返回refreshToken.user.UserId;
}
主要问题是我想用外键加载相关数据,它有三种方法,下面的链接将帮助您