У меня может быть 60-70 классов, каждый из которых имеет различные столбцы Id, которые я хотел бы исключить, когда я возвращаю данные JSON из Web API.Внутренне я присоединяюсь по Id, но все, что обращено вперед, использует Guid.Итак, мой первичный ключ - это Id (int), а затем есть Guid для внешнего мира, чтобы сделать его более безопасным.
Как правило, вы просто добавляете [JsonIgnore] поверх свойства, и он заботится оэто, но у меня есть много классов, которые могут обновляться время от времени.Всякий раз, когда я зачищаю все и принудительно перезаписываю, он удаляет мои изменения.
Вместо ручного добавления [JsonIgnore] в каждый столбец Id, который я хочу исключить, кажется более логичным просто обрабатывать это в OnModelCreating.Я могу циклически просматривать свойства и использовать .Ignore, но это также удаляет свойство из всего остального.Я просто не хочу, чтобы он сериализовал и возвратил ни один из столбцов с именем «Id» и любые внешние ключи (которые также являются Ids).
Итак, вот пример из одного класса
[JsonIgnore]
public int Id { get; set; }
public Guid Guid { get; set; }
public string Name { get; set; }
public bool? Active { get; set; }
[JsonIgnore]
public int HoldTypeId { get; set; }
public DateTime CreateDateTime { get; set; }
public DateTime UpdateDateTime { get; set; }
Я могу «заставить это работать» трудным путем, но я надеюсь, что есть быстрый и простой способ достичь тех же результатов, чтобы я мог тратить время на важные части.
РЕДАКТИРОВАТЬ: Вот что возвращает данные пользователю.
// GET: api/Distributors
[HttpGet]
public async Task<ActionResult<IEnumerable<Distributor>>> GetDistributor()
{
return await _context.Distributor.ToListAsync();
}