存储库仅在某些情况下获取数据

我有一个 ASPNET Boilerplate 项目;下面的代码是从服务和后台作业执行的


    private readonly IRepository<UserTeam> _userTeamsRepository;

    [...]

    public List<UserTeam> GetUsers(){

        var defaultUsers = _userTeamsRepository

            .GetAllIncluding(ut => ut.Team, ut => ut.User)

            .Where(ut => ut.Team.AlwaysIncluded)

            .ToList();

    }

它从表和表UserTeam之间的连接表中获取数据(一个属于多个,一个可以有多个)。UsersTeamsUserTeamsTeamUsers


正如我所说,该GetUsers()方法在 Web 服务和后台作业中都被引用。使用断点我可以看到,当在 Web 服务中调用该方法时,返回的列表充满了UserTeam包含链接Team和User实体的实体(这正是我想要的)。


另一方面,当它从后台作业调用时,仅Team填充该字段,而该User部分为空。


这是一个非常奇怪的问题,因为这段代码是相同的,唯一不同的是它是在同一个应用程序的不同上下文中调用的。


你知道什么可能导致这个问题吗?


HUX布斯
浏览 172回答 2
2回答

喵喵时光机

根据Tseng 评论,后台作业是跨租户的,因此它无法访问User表信息。我通过User在将后台作业排队并将数据传递给作业的输入对象之前获取数据来解决此问题。
打开App,查看更多内容
随时随地看视频慕课网APP