Когда я использую хранилище таблиц Azure Вставить сущность api для вставки данных.
В моем классе сущностей есть несколько типов, таких как dateTime, int.И в соответствии с этим doc : по умолчанию свойство создается как тип String, если вы не укажете другой тип.
Так что мне интересно, какой из способов является лучшим для добавления типа одататы вJSON полезная нагрузка?Сгенерированная полезная нагрузка json с добавленным типом данных должна выглядеть следующим образом:
![enter image description here](https://i.stack.imgur.com/lAcgV.jpg)
И мое текущее решение состоит в том, что после генерации строки json я рассматриваю ее какстрока и добавьте тип odata непосредственно в json.Но я думаю, что должен быть более лучший способ для этого.
Мой код, как показано ниже:
Класс сущности:
public class MyClass
{
public string PartitionKey { get; set; }
public string RowKey { get; set; }
public string Name { get; set; }
public Guid TestId { get; set; }
}
Основной метод:
static void Main(string[] args)
{
string url_with_sasToken = "https://xxx.table.core.windows.net/ttt?sasToken";
MyClass entity = new MyClass
{
PartitionKey = "ivan2",
RowKey = "y1",
Name = "jack60",
TestId = Guid.NewGuid()
};
//here, I add the odata type for Guid type
string s = JsonConvert.SerializeObject(entity).Replace("}","");
s += ",\"TestId@odata.type\"" + ":" + "\"Edm.Guid\"}";
Console.WriteLine(s);
var content = new StringContent(s, Encoding.UTF8, "application/json");
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new
MediaTypeWithQualityHeaderValue("application/json"));
var t2 = client.PostAsync(url_with_sasToken , content).GetAwaiter().GetResult();
Console.WriteLine(t2.StatusCode);
}
}