使用 azure storage tableapi 的控制台应用程序
Console app to use azure storage tableapi
请提供一些有关发送 http 请求以使用 OData 查询 azure table 存储的示例(控制台应用程序)?
更新
你可以像我的照片一样在门户网站上找到你的 sastoken
。
并且您还需要更新 x-ms-date
的值(必需。为请求指定协调世界时 (UTC)。) 在 HttpHelper
文件 。
更多详细信息,您可以在github中下载my demo代码(您可以下载我的HttpHelper
文件)。
using Microsoft.Azure.Cosmos.Table;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Threading.Tasks;
using static ODatafilter.HttpHelper;
namespace ODatafilter
{
class Program
{
static async Task Main(string[] args)
{
Console.WriteLine("Azure Cosmos Table Samples");
string baseurl = @"https://panshubeistorage.table.core.windows.net/";
string tbname = "People";//Console.ReadLine();
string sastoken = @"?sv=2019-10-10&ss=************";
string filter = @"&$filter=PartitionKey%20eq%20'Smith'%20";
baseurl = baseurl + tbname + "()" + sastoken+filter;
HttpResponseData data = HttpHelper.GetForOData(baseurl);
string responseData = data.Data.Replace(".","_");
ODataResponse odata = JsonConvert.DeserializeObject<ODataResponse>(responseData);
foreach (ODatavalue m in odata.value)
{
Console.WriteLine(m.PartitionKey + " " + m.PhoneNumber + " " + m.RowKey + " " + m.Email);
}
Console.WriteLine("Press any key to exit");
Console.Read();
}
public class ODataResponse
{
public string odata_metadata { get; set; }
public List<ODatavalue> value { get; set; }
}
public class ODatavalue {
public string odata_type { get; set; }
public string odata_id { get; set; }
public string odata_etag { get; set; }
public string odata_editLink { get; set; }
public string Timestamp { get; set; }
public string PartitionKey { get; set; }
public string RowKey { get; set; }
public string Email { get; set; }
public string PhoneNumber { get; set; }
}
}
}
原始
您可以使用 LinQ 查询您支持的文档。
static async Task Main(string[] args)
{
Console.WriteLine("Azure Cosmos Table Samples");
Console.WriteLine("Query data by filter");
CloudTable table = GetTable();
Console.WriteLine("pls input PartitionKey:");
string PartitionKey = Console.ReadLine();
Console.WriteLine("pls input RowKey:");
string RowKey = Console.ReadLine();
//Query
IQueryable<CustomerEntity> linqQuery = table.CreateQuery<CustomerEntity>()
.Where(x => x.PartitionKey== PartitionKey && x.RowKey== RowKey)
.Select(x => new CustomerEntity() { PartitionKey = x.PartitionKey, RowKey = x.RowKey, Email = x.Email, PhoneNumber= x.PhoneNumber });
var list = linqQuery.ToList<CustomerEntity>();
foreach (CustomerEntity m in list)
{
Console.WriteLine(m.PartitionKey+" "+m.PhoneNumber+" "+m.RowKey+" "+m.Email);
}
Console.WriteLine();
Console.WriteLine("Press any key to exit");
Console.Read();
}
public static CloudTable GetTable() {
CloudStorageAccount account = CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=***x=core.windows.net");
CloudTableClient tableClient = account.CreateCloudTableClient();
CloudTable table = tableClient.GetTableReference("People");
return table;
}
请提供一些有关发送 http 请求以使用 OData 查询 azure table 存储的示例(控制台应用程序)?
更新
你可以像我的照片一样在门户网站上找到你的 sastoken
。
并且您还需要更新 x-ms-date
的值(必需。为请求指定协调世界时 (UTC)。) 在 HttpHelper
文件 。
更多详细信息,您可以在github中下载my demo代码(您可以下载我的HttpHelper
文件)。
using Microsoft.Azure.Cosmos.Table;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Threading.Tasks;
using static ODatafilter.HttpHelper;
namespace ODatafilter
{
class Program
{
static async Task Main(string[] args)
{
Console.WriteLine("Azure Cosmos Table Samples");
string baseurl = @"https://panshubeistorage.table.core.windows.net/";
string tbname = "People";//Console.ReadLine();
string sastoken = @"?sv=2019-10-10&ss=************";
string filter = @"&$filter=PartitionKey%20eq%20'Smith'%20";
baseurl = baseurl + tbname + "()" + sastoken+filter;
HttpResponseData data = HttpHelper.GetForOData(baseurl);
string responseData = data.Data.Replace(".","_");
ODataResponse odata = JsonConvert.DeserializeObject<ODataResponse>(responseData);
foreach (ODatavalue m in odata.value)
{
Console.WriteLine(m.PartitionKey + " " + m.PhoneNumber + " " + m.RowKey + " " + m.Email);
}
Console.WriteLine("Press any key to exit");
Console.Read();
}
public class ODataResponse
{
public string odata_metadata { get; set; }
public List<ODatavalue> value { get; set; }
}
public class ODatavalue {
public string odata_type { get; set; }
public string odata_id { get; set; }
public string odata_etag { get; set; }
public string odata_editLink { get; set; }
public string Timestamp { get; set; }
public string PartitionKey { get; set; }
public string RowKey { get; set; }
public string Email { get; set; }
public string PhoneNumber { get; set; }
}
}
}
原始
您可以使用 LinQ 查询您支持的文档。
static async Task Main(string[] args)
{
Console.WriteLine("Azure Cosmos Table Samples");
Console.WriteLine("Query data by filter");
CloudTable table = GetTable();
Console.WriteLine("pls input PartitionKey:");
string PartitionKey = Console.ReadLine();
Console.WriteLine("pls input RowKey:");
string RowKey = Console.ReadLine();
//Query
IQueryable<CustomerEntity> linqQuery = table.CreateQuery<CustomerEntity>()
.Where(x => x.PartitionKey== PartitionKey && x.RowKey== RowKey)
.Select(x => new CustomerEntity() { PartitionKey = x.PartitionKey, RowKey = x.RowKey, Email = x.Email, PhoneNumber= x.PhoneNumber });
var list = linqQuery.ToList<CustomerEntity>();
foreach (CustomerEntity m in list)
{
Console.WriteLine(m.PartitionKey+" "+m.PhoneNumber+" "+m.RowKey+" "+m.Email);
}
Console.WriteLine();
Console.WriteLine("Press any key to exit");
Console.Read();
}
public static CloudTable GetTable() {
CloudStorageAccount account = CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=***x=core.windows.net");
CloudTableClient tableClient = account.CreateCloudTableClient();
CloudTable table = tableClient.GetTableReference("People");
return table;
}