存储库仅在本地开发环境中获取数据

虚拟机

我有一个 ASPNET Boilerplate 项目,它在一个应用程序服务中使用存储库来访问数据库中的一些数据

public class AnAppService : AsyncCrudAppService<MyEntity, MyEntityDto, int, PagedAndSortedResultRequestDto, MyEntityDto, MyEntityDto>, IAnAppService
{
    private readonly IRepository<UserTeam> _userTeamsRepository;

    public AnAppService(IRepository<MyEntity> repository,
            IRepository<UserTeam> userTeamsRepository)
           : base(repository)
        {
            _userTeamsRepository = userTeamsRepository;
        }

        public override Task<MyEntityDto> Create(MyEntityDto input)
        {
            [...]
            var myDbContext = _myDbContextProvider.GetDbContext();
            var uteams = // Here the items have null User objects, though it was included in the query
                myDbContext.UserTeams
                .Include(ut => ut.User)
                .Where(ut => ut.Team.Id == teamId)
                .ToList();
            [...]
        }
    }
}

在开发过程中,一切正常,链接数据被获取。现在我已经将它部署在 IIS 7 服务器上,但它不再工作了。调试,可以看到defaultUserslist不为空(并且项目数等于开发机中的项目数),但单项为空。我在这两种环境中使用具有相同数据库的相同用户。

这是UserTeam实体的定义它只是样板User实体和Team实体之间的多对多映射

public class UserTeam : Entity<int>
{
    public User User { get; set; }
    public Team Team { get; set; }
}

你怎么看待这件事?

更新1:

我直接执行 SQL 查询只是为了检查它是否可能是样板问题或其他问题。这是我运行的代码(以相同的方法)

string queryString = "SELECT u.name name FROM UserTeams ut join AbpUsers u on ut.UserId = u.Id";
using (SqlConnection connection = new SqlConnection(connectionString))
{
    SqlCommand command = new SqlCommand(queryString, connection);
    connection.Open();
    SqlDataReader reader = command.ExecuteReader();
    while (reader.Read())
    {
        var name = reader["name"]; // The name variable has a value
    }
}

好吧,数据被提取,我没有用户数据的空值。ASPNET Boilerplate、Entity Framework Core 和 SQL 引擎之间似乎出现了一些问题。你有什么线索吗?

更新2:我在考虑User实体读取操作的权限问题,所以我检查了这个:

public class AnAppService : AsyncCrudAppService<MyEntity, MyEntityDto, int, PagedAndSortedResultRequestDto, MyEntityDto, MyEntityDto>, IAnAppService
{
    private readonly IRepository<User, long> _usersRepository;

    public AnAppService(IRepository<MyEntity> repository,
        IRepository<UserTeam> userTeamRepository)
           : base(repository)
        {
            _userTeamRepository = userTeamRepository;
        }

        public override Task<MyEntityDto> Create(MyEntityDto input)
        {
            [...]
            var users = _usersRepository.GetAll();
            [...]
        }
    }
}

这里我在User实体上使用一个简单的存储库来读取所有用户。好吧,虽然在开发机器上我可以获取所有用户,但在部署机器上只admin返回用户。在这两种情况下,我都与admin用户一起登录我认为UserTeam存储库没有获取非空用户,因为出于某种原因,User登录用户无法访问表(但对于这两个环境,它是同一个用户!)你怎么看?

虚拟机

我发现了这个问题。生产环境我是用admin用户登录的,但是没有选择任何租户,所以我登录的是.租户,如图

当前租户:未选择

在登录页面上。使用Default租户(或任何工作租户)登录解决了问题

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

本地存储数据库

Go开源存储库开发的最佳本地结构是什么?

我如何在IntelliJ Idea插件开发中获取Maven的本地存储库

从Codeigniter中的数据库获取JSON存储数据

Azure SQL数据库开发环境

在React中,以本地或全局状态存储获取的Firebase数据?

处理下载/获取的SQLite数据库文件而不将其保存在本地存储中

在开发环境中启动时清除Room数据库

Git仅在本地存储库中还原公共提交

使用Docker设置本地开发并对存储库进行Docker化?

如何在测试环境中读取Rails开发数据库?

如何从外部api获取数据并将其存储在本地数据库中?(javascript)

将数据从产品数据存储区传输到Google App Engine(Python)中的本地开发环境数据存储区

从存储在本地存储中的数组中获取数据的最佳方法是什么?

如何更新从git本地存储库中获取的分支?

在文件/文件夹中本地存储数据库

如何从phonegap上的本地数据库中获取数据

用于管理本地开发存储库的工具

如何从本地存储库中获取分离的Git HEAD?

在混合应用程序开发中使用本地存储作为“本地数据库”-危险还是有用?

从本地Maven存储库获取.jar文件

并行获取存储库数据

本地存储QML,获取Sqlite数据库位置

Visual Studio中的TFS-如何获取服务器存储库以匹配本地存储库

使用JAVASCRIPT / PHP获取Mac和本地PC的IP地址并将其存储到数据库中?

要在设备脱机时将数据存储在本地数据库中,并在在线时从数据库获取并发送到服务器

phonegap:将数据库值存储在本地存储中

将虚拟环境中的 bin、include 和 lib 目录放在哪里到开发存储库中?

AS3。在本地 SQL 数据库中存储数组