Код 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 ]"}

638   3  

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

    Ничего не найдено.