C# и ASP.NET Core: POSTing в отношениях «один-многие»?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 C# и ASP.NET Core: POSTing в отношениях «один-многие»?

Сообщение Anonymous »

Контекст: я создаю веб-API React + C# ASP.NET Core.
По сути, у меня есть связь «один ко многим» между объектом Food и объект Review.

Код: Выделить всё

public class Review
{
public int Id { get; set; }
// ... [other properties] ...

public int FoodId { get; set; }

[JsonIgnore]
public virtual Food? Food { get; set; }
}

public class Food
{
public int Id { get; set; }

// ... [other properties] ...

[ForeignKey("FoodId")]
public List Ratings { get; set; } = [];
}
Передача еды работает нормально, но для проверки я хочу отправить в конечную точку следующий JSON:

Код: Выделить всё

{
// ... [other properties] ...
foodId: [foodId]
}
И пусть контроллер создаст объект Review, чтобы я мог ПОЛУЧИТЬ список всех обзоров со ссылкой на их еду для использования во внешнем интерфейсе.< /p>
Я также хочу, чтобы список обзоров объекта Food обновлялся, поэтому, когда я ПОЛУЧАЮ еду, список также возвращаются все его отзывы.
Вот мое сопоставление:

Код: Выделить всё

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity()
.HasMany(f => f.Ratings)
.WithOne(r => r.Food)
.HasForeignKey(r => r.FoodId);
}

public DbSet Foods { get; set; } = null!;
public DbSet Reviews { get; set; } = null!;
В настоящее время я публикую сообщения, отправляя следующий JSON:

Код: Выделить всё

{
... [other properties] ...
foodId: 1
}
и в контроллере у меня есть конечная точка для проверки:

Код: Выделить всё

[HttpPost]
public async Task PostReview(Review review)
{
var foodToReview = await _context.Foods.FindAsync(review.FoodId);

if (foodToReview == null)
{
return NotFound();
}

_context.Reviews.Add(review);

await _context.SaveChangesAsync();

return CreatedAtAction(nameof(GetReview), new { id = review.Id }, review);
}
Но на самом деле созданный обзор не добавляется к объекту Food, потому что когда я вызываю GET для объекта Food к какому бы идентификатору я ни добавил обзор, список обзоров по-прежнему пуст.
Кроме того, чтобы иметь возможность отправлять POST в ASP.NET Core Web API , мне нужно сделать ссылку Food в Review обнуляемой, чего, по моему мнению, никто больше не делает, и мне интересно, как лучше всего это сделать.

Подробнее здесь: https://stackoverflow.com/questions/791 ... lationship
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»