hej
Mam ci ja banalną relację w EF Core:
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
}
public class ProductOrder
{
public int OrderId { get; set; }
public Product Product { get; set; }
}
Wydawało mi się, że podczas tworzenia encji ProductOrder mogę zrobić to tak:
ProductOrder productOrder = new ProductOrder { Product = new Product { Id = productId } };
await repository.AddAsync(productOrder):
Niestety, taki kod konczy sie wyjątkiem, który mówi mniej więcej o tym, że nie jest możliwe ręczne ustawianie wartości, które są automatycznie przypisane przez bazę - Id(PK) dla encji Product. Dlatego obiekty ProductOrder muszę tworzyć tak:
ProductOrder productOrder = new ProductOrder();
productOrder.Product = repository.GetProductById(productId);
await repository.AddAsync(productOrder);
Dlaczego EF nie może sam zaciągnąć obiektu Product do property Product encji ProductOrder skoro posiada jej PK i ta istnieje w bazie? Pobieranie calego produktu z bazy i wrzucanie go do ProductOrder ręcznie za każdym razem jest uciążliwe