Код Entity framework-первый нулевой внешний ключ
у меня есть User Country модель. Пользователь принадлежит к стране, но не может принадлежать к любому (нулевой внешний ключ).
как мне это настроить? Когда я пытаюсь вставить пользователя с нулевой страной, он говорит мне, что он не может быть нулевым.
модель выглядит следующим образом:
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 ]"}
3 ответов:
вы должны сделать свой внешний ключ nullable:
public class User { public int Id { get; set; } public int? CountryId { get; set; } public virtual Country Country { get; set; } }
У меня такая же проблема сейчас , У меня есть внешний ключ, и мне нужно поставить его как nullable, чтобы решить эту проблему, вы должны поставить
modelBuilder.Entity<Country>() .HasMany(c => c.Users) .WithOptional(c => c.Country) .HasForeignKey(c => c.CountryId) .WillCascadeOnDelete(false);в классе DBContext Прошу прощения за ответ вам очень поздно:)
Я предпочитаю этот (ниже):
public class User { public int Id { get; set; } public int? CountryId { get; set; } [ForeignKey("CountryId")] public virtual Country Country { get; set; } }потому что EF создавал 2 внешних ключа в таблице базы данных: CountryId и CountryId1, но код об этом исправил.
Comments