BreezeJS查找数据在本地失败

BreezeJS查找数据在本地失败,breeze,Breeze,我有一个BreezeWebAPI控制器,它带有一个查找功能,可以返回不同的用户数据集。这适用于远程查询,但不适用于始终选择第一个数据集的本地查询。我的WebAPI控制器: [HttpGet] public async Task<object> Lookups() { var currentUser = await UserManager.FindById(Guid.Parse(User.Identity.GetUserId()));

我有一个BreezeWebAPI控制器,它带有一个查找功能,可以返回不同的用户数据集。这适用于远程查询,但不适用于始终选择第一个数据集的本地查询。我的WebAPI控制器:

    [HttpGet]
    public async Task<object> Lookups()
    {
        var currentUser = await UserManager.FindById(Guid.Parse(User.Identity.GetUserId()));
        var companyId = currentUser.CompanyId.Value;
        return new
        {
            allUsersInCompany = UnitOfWork.UserRepository.Get(u => u.CompanyId == companyId && u.Enabled == true).Select(v => new User()
            {
                Id = v.Id,
                FirstName = v.FirstName,
                LastName = v.LastName,
            }),
            assessors = UnitOfWork.UserRepository.Get(u => u.CompanyId == companyId && u.Enabled == true && u.Id != currentUser.Id &&
            (!string.IsNullOrEmpty(u.StId) || u.UserRoles.Any(ur => ur.Role.Description == "Assessor"))
            ).Select(v => new User()
                {
                    Id = v.Id,
                    FirstName = v.FirstName,
                    LastName = v.LastName,
                    Town = v.Town,
                    Postcode = v.Postcode
                })
        };
    }

问题是,当我在本地执行查询时,assessors和allUsersInCompany都设置为allUsersInCompany的数据。有没有办法为查找查询的每个部分提取正确的数据?

您的查询正在将它们映射到同一类型-

allUsersInCompany: em.executeQueryLocally(_lookupsQuery.toType(em.metadataStore.getEntityType("User"))),
assessors: em.executeQueryLocally(_lookupsQuery.toType(em.metadataStore.getEntityType("User")))
用户的,这可能就是它获取相同数据的原因。我不确定
评估员的实体类型是什么,但如果他们在DB中被称为实体类型,请尝试将其更改为-

allUsersInCompany: em.executeQueryLocally(_lookupsQuery.toType(em.metadataStore.getEntityType("User"))),
assessors: em.executeQueryLocally(_lookupsQuery.toType(em.metadataStore.getEntityType("Assessor")))

评估员和公司中的所有用户都属于用户类型,他们只是包含不同的数据。评估员和用户的区别是什么?有国旗什么的吗?如果您正在编写SQL或Linq查询,您必须有某种方法来识别它们,与Breeze的查询相同,评估员是用户,它们的区别在于所有用户和评估员包含不同的数据
allUsersInCompany: em.executeQueryLocally(_lookupsQuery.toType(em.metadataStore.getEntityType("User"))),
assessors: em.executeQueryLocally(_lookupsQuery.toType(em.metadataStore.getEntityType("Assessor")))