Frage Entity-Framework-Code - zuerst Null-Fremdschlüssel


Ich habe ein User < Country Modell. Ein Benutzer gehört zu einem Land, darf aber keinem angehören (Null-Fremdschlüssel).

Wie richte ich das ein? Wenn ich versuche, einen Benutzer mit einem Null-Land einzufügen, wird mir mitgeteilt, dass es nicht null sein darf.

Das Modell ist wie folgt:

 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


Ursprung


Antworten:


Sie müssen Ihren Fremdschlüssel auf Null setzen lassen:

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



Ich habe jetzt das gleiche Problem, Ich habe einen Fremdschlüssel und ich muss ihn als nullbar angeben, Um dieses Problem zu lösen, sollten Sie setzen

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

in der DBContext-Klasse Es tut mir leid, dass ich euch sehr spät antworte :)


0
2017-07-17 17:22