Ich habe ein User
<Country
Modell. Ein Benutzer gehört einem Land an, darf aber keinem (null Fremdschlüssel) angehören.
Wie richte ich das ein? Wenn ich versuche, einen Benutzer mit einem Nullland einzufügen, wird mir mitgeteilt, dass es nicht null sein kann.
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;}
}
Fehler: A foreign key value cannot be inserted because a corresponding primary key value does not exist. [ Foreign key constraint name = Country_Users ]"}
Sie müssen Ihren Fremdschlüssel für null freigeben lassen:
public class User
{
public int Id { get; set; }
public int? CountryId { get; set; }
public virtual Country Country { get; set; }
}
Ich bevorzuge das (unten):
public class User
{
public int Id { get; set; }
public int? CountryId { get; set; }
[ForeignKey("CountryId")]
public virtual Country Country { get; set; }
}
Weil EF in der Datenbanktabelle 2 Fremdschlüssel erstellt hat: CountryId und CountryId1, aber der Code über das Problem wurde behoben.
Ich habe jetzt dasselbe Problem, Ich habe einen Fremdschlüssel, und ich muss ihn als nullbar setzen, Dieses Problem sollte gelöst werden
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 Ihnen sehr spät antworten musste :)