Mam User
< Country
model. Użytkownik należy do kraju, ale nie może należeć do żadnego (pusty klucz obcy).
Jak to ustawić? Kiedy próbuję wstawić użytkownika z pustym krajem, mówi mi, że nie może być pusty.
Model wygląda następująco:
public class User{
public int CountryId { get; set; }
public Country Country { get; set; }
}
public class Country{
public List<User> Users {get; set;}
public int CountryId {get; set;}
}
Błąd: A foreign key value cannot be inserted because a corresponding primary key value does not exist. [ Foreign key constraint name = Country_Users ]"}
entity-framework
mapping
ef-code-first
foreign-key-relationship
entity-framework-4.1
Shawn Mclean
źródło
źródło
Odpowiedzi:
Musisz nadać kluczowi obcemu wartość null:
źródło
if
(Guid
kluczy bazowych. (To sprawia, że są one dopuszczalne do wartości null,Wolę to (poniżej):
Ponieważ EF tworzył 2 klucze obce w tabeli bazy danych: CountryId i CountryId1, ale powyższy kod naprawił to.
źródło
Mam teraz ten sam problem, mam klucz obcy i muszę ustawić go jako zerowy, aby rozwiązać ten problem, który należy umieścić
w klasie DBContext przepraszam za bardzo późną odpowiedź :)
źródło
Polecam przeczytać przewodnik firmy Microsoft dotyczący używania relacji, właściwości nawigacji i kluczy obcych w EF Code First, jak na tym obrazku.
Link do przewodnika poniżej:
https://docs.microsoft.com/en-gb/ef/ef6/fundamentals/relationships?redirectedfrom=MSDN
źródło