我正在使用Azure服务提供商(xamarin表单中的Azure SDK)从Azure云服务器下载数据,我使用以下代码来获取所有数据
var table = AzureServiceProvider.Instance.GetRemoteTable<T>();
var query = table.CreateQuery();
if (filter != null)
{
query = table.Where(filter);
}
List<T> azureDatas;
await query.ToListAsync();
当我使用上面的代码时,会点击以下网址https://MyService.azurewebsites.net/tables/TableName
但是现在我必须传递id(即api / table / {TableName} / {controller} / {id})来仅获取匹配该id的所需数据
使用上面相同的代码点击上面的URL https://MyService.azurewebsites.net/tables/TableName 我希望使用的内容
EX: - https://mobilddevservice.azurewebsites.net/tables/TableName/(methodName)/(ID)10338654
答案 0 :(得分:2)
我不知道你是否想出这个,但是为了在控制器中定位一个特定的方法,你可以在你的桌子上使用“.WithParameters”方法。
因此,假设您的控制器中有两种方法:
// GET tables/TableName/id
public SingleResult<TableName> GetDataFromName(string name)
{
//Your logic here
}
// GET tables/TableName/id
public SingleResult<TableName> GetDataFromAddress(string address)
{
//Your logic here
}
您可以使用 .WithParameters 分别访问这些方法:
Dictionary<string, string> parameters = new Dictionary<string, string>();
parameters.Add("name", name);
var query = Table.WithParameters(parameters);
var results = await query.ToEnumerableAsync();
访问地址方法
Dictionary<string, string> parameters = new Dictionary<string, string>();
parameters.Add("address", personsAddress);
var query = Table.WithParameters(parameters);
var results = await query.ToEnumerableAsync();
所以重要的部分是:
答案 1 :(得分:0)
使用以下内容进行Id的查询:
var table = client.GetTable<T>();
var record = await table.LookupAsync(id);
它使用不同的端点 - https://site.azurewebsites.net/tables/Table/{id}
。
有关详情,请查看书籍:https://adrianhall.github.io/develop-mobile-apps-with-csharp-and-azure/chapter3/client/