【发布时间】:2020-04-14 15:09:17
【问题描述】:
我首先生成一个刷新令牌并通过 Entity Framework Core 将其存储在 SQL Server 中,如下所示:
var refreshToken = new RefreshToken { User = user, Token = Guid.NewGuid().ToString() };
_context.RefreshTokens.Add(refreshToken);
_context.SaveChanges();
_context 继承自 Microsoft.EntityFrameworkCore.DbContext。
此时_context.RefreshTokens.ToList(); 中有一项。 Id、Token和User都不是空的,我可以访问User中的数据。
另一个 API 端点被调用,在里面我得到如下的 RefreshTokens 列表
var l = _context.RefreshTokens.ToList();
l.Id 已填充,l.Token 已填充,l.User 为空。
这会造成问题,因为我需要访问与 RefreshToken 关联的用户
我已尝试获取_context.Users.ToList();,并且之前设置的用户出现在此列表中。
我最初的假设是 EF 可能在需要之前不会查询 user,所以我尝试从上面的 sn-p 中获取 l.User.Id,但错误如下。
System.NullReferenceException:对象引用未设置为对象的实例
为什么我刚刚保存的实体中的字段在调用时为空?
【问题讨论】:
-
var l = _context.RefreshTokens.Include(t => t.User).ToList();
标签: c# entity-framework-core asp.net-core-webapi