Вы должны следовать соглашениям UpperCamelCase
в C # и lowerCamelCase
для JSON / JS
Так что смешивать соглашения, такие как у вас, - плохая идея, и она просто вызовет проблемы с библиотеками, такими как Entity, вызовет проблемыдля других пользователей на стороне удобочитаемости и после того, как вы начнете делать вызовы API, это полностью сбивает с толку.
Обновите вашу табличную сущность, чтобы использовать все UpperCamelCase
.То же самое относится и к DTO, потому что JSON Convert автоматически применяет lowerCamelCase
во время сериализации и десериализации для JavaScript, сохраняя ваш код в C # Convention.
Существует возможность сказать Entity игнорировать регистр ... но я, скорее, предоставлю вам внешнее мнение, чтобы НЕ изменять соглашения, которые были приняты умными людьми ... а лучше исправить ваш подход купростите жизнь для каждого.
Предполагая, что это стандартный способ написания C # (UpperCase)
public class TestClass {
public string TranslateFrom { get; set; }
}
, и вы возвращаете его через ActionResult в MVC или API
public ActionResult SomeActionMethod() {
return Json(new TestClass(){TranslateFrom="z-axis"});
}
JSON (соглашение об именовании свойств) будет lowerCase
{ "translateFrom" : "z-axis" }
и наоборот.Вы можете отправить заглавные или строчные буквы в C # MVC / API, и Newtonsoft.JSON сработает.Но вы должны придерживаться соглашения JavaScript всегда нижестоящих свойств.
Ваш класс должен выглядеть следующим образом.
public class Translation : TableEntity
{
public string TranslateFrom { get; set; }
public string TranslateTo { get; set; }
public string TranslationId { get; set; }
public string FieldType { get; set; }
public string SourceParty { get; set; }
public string DestinationParty { get; set; }
}