Я использую Simple.OData.Client для отправки запроса с URL:
<host>/api/data/v9.1/policies(<id>)?$select=customer_value
Это возвращает следующее (в Почтальоне, потому что я разочарованно не могу видеть возвращаемый json контент из Simple. OData.Client, но запрос имеет те же заголовки и URL).
{
"@odata.context": "<host>/api/data/v9.1/$metadata#policies(_customer_value)/$entity",
"@odata.etag": "W/\"468251131\"",
"_customer_value@Microsoft.Dynamics.CRM.lookuplogicalname": "contact",
"_customer_value": "00c3c040-efbb-e811-a8eb-0003ff414d8e",
"policyid": "038a45a0-5dd8-e811-a8eb-0003ff271c22"
}
Я пытаюсь проанализировать ответ в сущности следующим образом:
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace entities
{
[Table("policies")]
public class CustomPolicyEntity
{
[Required]
[Column("_customer_value")] // works
public Guid Customer { get; set; }
[Required]
[Column("_customer_value@Microsoft.Dynamics.CRM.lookuplogicalname")] // does not work
public string CustomerLogicalName { get; set; }
}
}
Но CustomerLogicalName равно нулю вместо «контакт». Может кто-нибудь сказать мне, что происходит не так?
Буду признателен за помощь в отладке, как получить аналогичный ответ для почтальона с Simple.OData.Client. Когда я звоню
await response.Content.ReadAsStringAsync();
, я получаю массивный объект XML вместо json, как я ожидал. Очевидно, что DataAnnotations могут это понять, поскольку они могут его анализировать, но поскольку я получаю разные результаты с Simple.OData.Client и Postman, используя одни и те же параметры запроса, мне трудно понять, какая часть работает неправильно. "_customer_value@Microsoft.Dynamics.CRM.lookuplogicalname": "контакт" может даже не прийти к клиенту, насколько я знаю.