how to Pull data with paramter using Azure Offline Sync?

你离开我真会死。 提交于 2019-12-13 03:35:30

问题


I have schema as below and I would like to know if I can get all the TaskCategoryMappings by CategoryId when I have to pulll all data. I went through the documentation here but I cant figure out how to do it ? All the examples are like this one based on UserId. but userid is used for also authentication and on the server side I already handle it fine to return only mappings belong to relevant user and i want in adition to filter by CategoryId?

another SO sample is here also using userId Parameter Passing with Azure Get Service

public class TaskCategoryMapping : TableData
    {
        public string TaskId { get; set; }

        public string CategoryId { get; set; }

        public string UserId { get; set; }

    }

回答1:


According to your description, I checked this issue on my side and found that it could work as expected, you could follow the details below to check your code:

Backend models:

public class Tag : EntityData
{
    public string TagName { get; set; }
    public bool Status { get; set; }
}

public class Message : EntityData
{
    public string UserId { get; set; }
    public string Text { get; set; }
    public virtual Tag Tag { get; set; }
    [ForeignKey("Tag")]
    public string Tag_Id { get; set; }
}

GetAllMessage action:

// GET tables/Message
public IQueryable<Message> GetAllMessage()
{
    return Query();
}

For the client, I just invoke the online table for retrieving the message entities as follows:

Model on client-side:

public class Message
{
    public string Id { get; set; }
    public string UserId { get; set; }
    public string Text { get; set; }
    public string Tag_Id { get; set; }
}

var result=await mobileServiceClient.GetTable<Message>().Where(msg => msg.Tag_Id == "c3cd4cf8-7af0-4267-817e-f84c6f0e1733").ToListAsync();

For offline table, the pull operation query would

await messageSyncTable.PullAsync($"messages_{userid}", messageSyncTable.Where(m => m.Tag_Id == "<Tag_Id>"));

Use fiddler, you could find that the request would look like this:

https://{your-app-name}.azurewebsites.net/tables/Message?$filter=Tag_Id eq 'c3cd4cf8-7af0-4267-817e-f84c6f0e1733'



来源:https://stackoverflow.com/questions/49135487/how-to-pull-data-with-paramter-using-azure-offline-sync

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!