Pertanyaan Entity framework code-first null foreign key


Saya punya User < Country model. Seorang pengguna adalah milik suatu negara, tetapi mungkin bukan milik apa pun (kunci asing null).

Bagaimana cara mengaturnya? Saat saya mencoba memasukkan pengguna dengan negara null, itu memberi tahu saya bahwa itu tidak boleh nol.

Modelnya adalah sebagai berikut:

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

Kesalahan: 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


asal


Jawaban:


Anda harus menjadikan kunci asing Anda dapat ditawar:

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



Saya punya masalah yang sama sekarang, Saya memiliki kunci asing dan saya harus meletakkannya sebagai nullable, untuk mengatasi masalah ini Anda harus meletakkan

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

di kelas DBContext Saya minta maaf untuk menjawab Anda sangat terlambat :)


0
2017-07-17 17:22