Получение дубликатов при сохранении элемента с двумя полями в отношении «многие ко многим»C#

Место общения программистов C#
Ответить
Anonymous
 Получение дубликатов при сохранении элемента с двумя полями в отношении «многие ко многим»

Сообщение Anonymous »

Я здесь новенький. Я работаю над проектом интернет-магазина. в проекте у меня есть модель с именем «Продукт», которая имеет связь «многие ко многим» с моделью «Цвет» с помощью модели «Продукт-Цвет». Я хочу добавить свойство с именем «Количество» в «Цвет продукта» для каждого добавляемого цвета. Я использую Razor Page и .net 8.
Вот что я сделал.
вот вид:

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

Colors
@{
var colors = ViewData["Colors"] as List;
}
@foreach (Color color in colors)
{

@color.ColorName

تعداد




}

это код:

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

 public IActionResult OnPost(IFormFile imgProductUp, List SelectedColors, List? ColorQuantities)
{
if (!ModelState.IsValid)
{
return Page();
}

int productId = _productService.AddProduct(Product, imgProductUp);
_productService.AddColorToProductByAdmin(productId, SelectedColors, ColorQuantities);
return RedirectToPage("Index");
}
это услуга:

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

   public void AddColorToProductByAdmin(int productId, List? SelectedColor, List? ColorQuantities)
{
foreach (int color in SelectedColor)
{
foreach (int quantity in ColorQuantities)
{
_context.ProductColors.Add(new ProductColor()
{
ProductId = productId,
ColorId = color,
Quantity = quantity
});
}
}
_context.SaveChanges();
}
Я хочу присвоить свойство «Количество» выбранному ColorId в таблице Product-Color, но мои коды образуют два цикла.
Это то, что я делаю войдите в мою базу данных:
введите здесь описание изображения, есть цикл для списка цветов и цикл для списка количества. Я просто хочу знать, как я могу отправить список количества и предотвратить повторение списка colorId дважды при добавлении списка количества.
Поэтому мне нужно руководство, чтобы решить эту проблему. спасибо

Подробнее здесь: https://stackoverflow.com/questions/790 ... ny-relatio
Ответить

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

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

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

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

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