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

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

Сообщение Anonymous »

Контекст: я создаю приложение React + C# ASP.NET.
По сути, у меня есть связь «один-ко-многим» между объектом 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; } = [];
}
Отправка в Food работает нормально, но для проверки я хочу отправить следующий JSON в конечную точку:

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

{
... [other properties] ...
foodId: [foodId]
}
И пусть контроллер создаст объект Review, чтобы я мог ПОЛУЧИТЬ список всех обзоров со ссылкой на их еду для использования во внешнем интерфейсе; Я также хочу, чтобы список обзоров объекта 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 в API ASP.NET, мне нужно сделать ссылку Food в Review обнуляемой, чего, по моему мнению, никто другой не делает, и я интересно, как лучше всего это сделать.

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

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

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

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

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

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

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