Pregunta Código de marco de entidad primera clave externa nula


tengo un User < Country modelo. Un usuario pertenece a un país, pero puede no pertenecer a ninguna (clave externa nula).

¿Cómo configuro esto? Cuando intento insertar un usuario con un país nulo, me dice que no puede ser nulo.

El modelo es el siguiente:

 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;}
}

Error: A foreign key value cannot be inserted because a corresponding primary key value does not exist. [ Foreign key constraint name = Country_Users ]"}


76
2018-04-14 19:46


origen


Respuestas:


Debes hacer que tu clave foránea sea nulable:

public class User
{
    public int Id { get; set; }
    public int? CountryId { get; set; }
    public virtual Country Country { get; set; }
}

123
2018-04-14 19:49



Tengo el mismo problema ahora , Tengo una clave externa y necesito ponerla como nulable, para resolver este problema debes poner

    modelBuilder.Entity<Country>()
        .HasMany(c => c.Users)
        .WithOptional(c => c.Country)
        .HasForeignKey(c => c.CountryId)
        .WillCascadeOnDelete(false);

en la clase DBContext Lamento haberte respondido muy tarde :)


0
2017-07-17 17:22