Zła relacja podczas wykonywania save changes

0

Witam.

Walcze od rana z relacjami w moim projekcie. Podczas dodawania nowego produktu otrzymuję błąd:

Entities in 'ApplicationDbContext.Products' participate in the 'Suplier_Products' relationship. 0 related 'Suplier_Products_Source' were found. 1 'Suplier_Products_Source' is expected.
 

Moje dwa modele:

Product:

 
    public class Product
    {
        public Product()
        {
            Category = new List<ProductCategory>();
        } 

        public int Id { get; set; }
        public string ProductName { get; set; } // nazwa produktu
        public string ProductDescription { get; set; } // opis produktu
        public string ProductImageUrl { get; set; } // url do obrazka produktu
        public ICollection<ProductCategory> Category { get; set; } // kategorie produktu
        public decimal PricePerUnit { get; set; } // cena jednostkowa
        public int PremiumPoints { get; set; } // punkty zniżki za każdy zakupiony produkt
        public int ProductQuantity { get; set; } // ilość na stanie
        public virtual NutritionalValue NutritionalValues { get; set; } // wartości odżywcze
        public virtual Suplier Suplier { get; set; } // dostawcy produktu
    }

I dostawca Suplier

 
public class Suplier
    {
        public int Id { get; set; }
        public string CompanyName { get; set; } // nazwa firmy
        public ICollection<Addresses> Address { get; set; } // jej adresy
        public ICollection<Product> Products { get; set; } 
    }

Co robię źle? :)

0

Nie podales kodu odpowiedzialnego za tworzenie i zapisywanie danych.
Czy tworzac Product, nie zapomniales czasem utworzyc/przypisac do Product obiekt Suplier (relacja jest wymagana)

0

To raczej nie jest dobrze, klasa Product ma właściwość Suplier, a Suplier ma kolekcję Products.
Ponieważ Product ma właściwość Suplier to tabela Products dostanie kolumnę z FK na Suplier
No i dodatkowo jeśli w klasie Suplier jest kolekcja produktów to w tabeli Products pojawi się dodatkowa kolumna z FK na Suplier?

Podłączę się pod temat.
Dotąd to robiłem tak że dawałem tylko kolekcje Products w jednej klasie, czy to jest dobrze? Bo później mam problem kiedy chce dostać kolekcje produktów razem z dostawcą.

0

Ok problem rozwiązałem. To ja jakoś dziwnie zmodyfikowałem te swoje modele i próbowałem naprawić błąd dodając puste obiekty :D

U mnie sytuacja jest troche bardziej skomplikowana:

Mam aplikacje która zawiera Generyczne repozytorium oraz Unit of Work.
Repozytoria i UOW wstrzykuję przez konstruktor do swoich serwisów.

W tych serwisach z nich korzystam a serwisy wstrzykuje do Controllera w sumie razem z uow aby wywołać metode SaveChanges()

Czyli mam akcje AddNewProduct() do której przekazuje moj VM nowego produktu i pozniej przypisuje poszczególne wartości z widoku a na samym konsu muszę wykonać _productRepository.Insert() oraz _uow.SaveChanges()

1 użytkowników online, w tym zalogowanych: 0, gości: 1