User
<Country
モデルがあります。ユーザーは国に属していますが、どの国にも属していない可能性があります(null外部キー)。
これを設定するにはどうすればよいですか? null国のユーザーを挿入しようとすると、nullにできないことを通知します。
モデルは次のとおりです。
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;}
}
エラー:A foreign key value cannot be inserted because a corresponding primary key value does not exist. [ Foreign key constraint name = Country_Users ]"}
外部キーをNULL可能にする必要があります。
public class User
{
public int Id { get; set; }
public int? CountryId { get; set; }
public virtual Country Country { get; set; }
}
私はこれを好む(以下):
public class User
{
public int Id { get; set; }
public int? CountryId { get; set; }
[ForeignKey("CountryId")]
public virtual Country Country { get; set; }
}
EFは、CountryIdとCountryId1という2つの外部キーをデータベーステーブルに作成していましたが、上記のコードはそれを修正しました。
私は今同じ問題を抱えています、私は外部キーを持っているので、それをnull可能として置く必要があります、この問題を解決するにはあなたが置くべきです
modelBuilder.Entity<Country>()
.HasMany(c => c.Users)
.WithOptional(c => c.Country)
.HasForeignKey(c => c.CountryId)
.WillCascadeOnDelete(false);
dBContextクラスでは、非常に遅く答えてすみません:)