Jak w fluent Api ustawić wartość null w kluczu obcym po usunięciu tabeli

0

Witam, czy wiecie jak z poziomu fluent api lub mvc ustawić wartość null dla kluczy obcych ? Chodzi mi o to, jeżeli mam produkt i ten produkt należy do danej kategorii czyli:

  class Produkt{
   public int id{get;set;}
   public int KategoriaID {get;set;}
   public virtual Kategoria Kategoria{ get; set; }
}
  class Kategoria{
   public int id{get;set;}
   public int KategoriaID {get;set;}
}
 

To w przypadku usunięcia kategorii chciałby aby wartość klucza obcego w tabeli Produkt przyjęła wartość NULL! Zrobiłem to ręcznie na poziomie bazy danych ale chciałbym zaimplementować tę funkcjonalność w aplikacji aby uniknąć ciągłej modyfikacji..

Pozdro

0

Skorzystaj ze zmiennych przyjmujących wartość null.

int?
0

Tak też zrobiłem nie pomogło :<

1

A czemu w ogóle chcesz usuwać kategorię, do której przypisane są jakiekolwiek produkty? Mi to wygląda na błąd w założeniach.

0

Hmm chciałbym móc CRUD'owac kategorie no chyba, że jest to zły pomysł? A jaki jest Twój sposób na kategorie?

0

Jeśli produkt musi należeć do jakiejś kategorii, to żadna kategoria nie może zostać usunięta, dopóki jakikolwiek produkt do niej należy. Czyli najpierw ustawiamy produktom inną kategorię, a potem dopiero usuwamy tę, której chcemy się pozbyć.

0

Ja mam troche inna koncepcje, mianowicie wydawalo mi sie to logiczne, produkt nalezy do kategorii, w przypadku usuniecia kategorii produkt istnieje lecz nie jest przypisany do zadnej kategorii, po czym mamy zestaw produktow bez okreslonej przynaleznosci do kategorii. Aplikacja moze lecz nie musi komunikowac o produktach(wolnych) i w edycji produktu wybieramy nowa kategorie. Jest to dosc mocno zagmatwane? Dzieki za odzew.

1

No dlatego pytałem o założenia. :)
Jeśli dopuszczasz możliwość istnienia produktów bez kategorii, wtedy po pierwsze KategoriaID musi być typu int?, no, a poza tym musisz zadbać o kaskadowość. Nie wiem, czy EF ma taką możliwość, podejrzewam, że niestety nie. Szukaj pod hasłem "cascade update".

0

Dziękuje za pomoc. :)

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