我的Azure应用(移动)服务存在问题(如果可以将其称为问题)。我有以下EntityData对象:
public class Role : EntityData
{
public string RoleCode { get; set; }
public string RoleName { get; set; }
public List<User> Users { get; set; }
public new string Id { get; set; }
public new DateTimeOffset? CreatedAt { get; set; }
public new DateTimeOffset? UpdatedAt { get; set; }
public new byte[] Version { get; set; }
}
...以及“包含”之前的类(角色是用户中的外键):
public class User : EntityData
{
public string Name { get; set; }
public string Surname { get; set; }
public string Username { get; set; }
public string Password { get; set; }
//foreign key to Role
public Role Role { get; set; }
public List<Appointment> appointments { get; set; }
public new string Id { get; set; }
public new DateTimeOffset? CreatedAt { get; set; }
public new DateTimeOffset? UpdatedAt { get; set; }
public new byte[] Version { get; set; }
}
MSSQL DB中的表创建得很好:
但是当我尝试使用表格控制器返回所有用户时:
public IQueryable<User> GetAllUser()
{
return Query();
}
...它返回给我所有用户,但没有该用户的角色:
{
"deleted": false,
"version": "AAAAAAABQJY=",
"updatedAt": "2016-09-24T14:51:06.126Z",
"createdAt": "2016-10-11T19:43:12.165Z",
"id": "8d5a1403-e0a1-4a69-b32d-708b3a84b260",
"password": "passwordUsera",
"username": "korisnik",
"surname": "Rafailovic",
"name": "Marija"
}
所有其他属性都存在,但不是角色!我尝试使用Include with Query但这没有用......
为什么会发生这种情况?我如何才能在每个用户中包含角色?我是通过使用自定义控制器和存储过程完成的,但这不是很好的解决方案......
答案 0 :(得分:0)
我建议查看我的书http://aka.ms/zumobook中的数据章节 - 这里有关于关系以及你能做什么(和不能做什么)的具体信息。 Spoiler:当你把它推进离线世界时,它的运作方式并不像你想象的那样。
答案 1 :(得分:0)
Azure移动服务的.NET后端可以通过Entity Framework轻松公开您的表。但是,关系查询默认情况下无法按预期工作。您可以尝试通过覆盖客户端中的DelegatingHandler
来扩展查询,并添加自定义ActionFilterAttribute
以在后端包含关系属性。有关更多详细信息,您可以按照此官方tutorial关于通过.NET后端为Azure移动服务检索关系数据。