Eu tenho um User
< Country
modelo. Um usuário pertence a um país, mas não pode pertencer a nenhum (chave estrangeira nula).
Como faço para configurar isso? Quando tento inserir um usuário com um país nulo, ele me diz que não pode ser nulo.
O modelo é o seguinte:
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;}
}
Erro: 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
fonte
fonte
Respostas:
Você deve tornar sua chave estrangeira anulável:
fonte
if
(eww)Guid
chaves baseadas. (Isso os torna anuláveis, claro, mas salvar um registro no banco de dados com a chave estrangeira definida como nula falha devido a uma restrição de chave estrangeira gerada automaticamente.) :-(Eu prefiro isto (abaixo):
Porque EF estava criando 2 chaves estrangeiras na tabela do banco de dados: CountryId e CountryId1, mas o código acima corrigiu isso.
fonte
Estou com o mesmo problema agora, tenho uma chave estrangeira e preciso colocá-la como nullable, para resolver esse problema você deve colocar
na classe DBContext, desculpe por responder muito tarde :)
fonte
Eu recomendo ler o guia da Microsoft para usar relacionamentos, propriedades de navegação e chaves estrangeiras no EF Code First, como esta imagem.
Link do guia abaixo:
https://docs.microsoft.com/en-gb/ef/ef6/fundamentals/relationships?redirectedfrom=MSDN
fonte