如何使用azure移动应用程序Tablecontroller获取相关实体

时间:2016-12-02 21:04:18

标签: c# entity-framework azure

您好我正在尝试使用表控制器获取相关实体。

这是我的成员类,其中包含订阅集合

public class Member : EntityData
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string Address { get; set; }
        public ICollection<Subscription> Subscriptions { get; set; }


    }

这是相关实体是订阅

public class Subscription : EntityData
    {
        public string MemberId { get; set; }
        public string ShopItemId { get; set; }
        public Member Member { get; set; }
        public ShopItem ShopItem { get; set; }
        public int Quantity { get; set; }
    }

如何修改此

public class MemberController : TableController<Member>
    {
        protected override void Initialize(HttpControllerContext controllerContext)
        {
            base.Initialize(controllerContext);
            ScoreContraceptionContext context = new ScoreContraceptionContext();
            DomainManager = new EntityDomainManager<Member>(context, Request);
        }

        // GET tables/Member
        public IQueryable<Member> GetAllMember()
        {
            return Query(); 
        }

        // GET tables/Member/48D68C86-6EA6-4C25-AA33-223FC9A27959
        public SingleResult<Member> GetMember(string id)
        {
            return Lookup(id);
        }

        // PATCH tables/Member/48D68C86-6EA6-4C25-AA33-223FC9A27959
        public Task<Member> PatchMember(string id, Delta<Member> patch)
        {
             return UpdateAsync(id, patch);
        }

        // POST tables/Member
        public async Task<IHttpActionResult> PostMember(Member item)
        {
            Member current = await InsertAsync(item);
            return CreatedAtRoute("Tables", new { id = current.Id }, current);
        }

        // DELETE tables/Member/48D68C86-6EA6-4C25-AA33-223FC9A27959
        public Task DeleteMember(string id)
        {
             return DeleteAsync(id);
        }
    }

搜索成员类的其他属性?

获取表/成员当前返回

[{"deleted":false,"updatedAt":"2016-12-02T17:17:06.447Z","createdAt":"2016-12-02T17:17:06.447Z","version":"AAAAAAAACA4=","id":"DemoUser1","address":"Some place","lastName":"Doe","firstName":"John"},{"deleted":false,"updatedAt":"2016-12-02T17:17:06.448Z","createdAt":"2016-12-02T17:17:06.448Z","version":"AAAAAAAACBA=","id":"DemoUser2","address":"Some other place","lastName":"Foster","firstName":"Jane"},{"deleted":false,"updatedAt":"2016-12-02T17:17:06.448Z","createdAt":"2016-12-02T17:17:06.448Z","version":"AAAAAAAACBI=","id":"DemoUser3","address":"#1 Galgamar st, Gibralter","lastName":"Shamlah","firstName":"Quarin"}]

我希望结果还包括用户拥有的订阅。

1 个答案:

答案 0 :(得分:0)

移动应用表关系比Asp.Net复杂得多。 Azure Mobile Apps Client SDK目前不支持$ expand,我们需要在服务器上执行某些操作。根据您的描述,您想要做一对多的关系。对于这种情况,我建议您尝试this article