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