C# EF core exception “The property '' on entity type '' has a temporary value”

160
25 мая 2019, 02:00

У меня выскочила странная ошибка. Существуют три таблицы:
Клас Users описывает данные пользователя.
Клас words_inDictionary содержит информацию о иностраном слове.
Клас WordsUsers является промежуточной таблицей для формирования связи многи-ко-многим (Один пользователь может учить много слов и одно слово может учится многими пользователями). В промежуточной таблице существует 3 ключа - один первичный и два внешних.

public class Users
{
    public Users()
    {
        Words = new List<WordsUsers>();
    }
    [Key]
    public int ID { get; set; }
    [Required]
    [MaxLength(60)]
    public string Email { get; set; }
    [Required]
    [MaxLength(30)]
    public string NickName { get; set; }
    [Required]
    [MaxLength(20)]
    public string Password { get; set; }
    public List<WordsUsers> Words { get; set; }
}
public class Word_InDictiononary
{
    public Word_InDictiononary()
    {
        Users = new List<WordsUsers>();
    }
    [Key]
    public int ID { get; set; }
    [Required]
    [MaxLength(35)]
    public string Word { get; set; }
    [MaxLength(30)]
    public string Word_Translated { get; set; }
    public List<WordsUsers> Users { get; set; }
}
public class WordsUsers
{
    [Key]
    public int ID { get; set; }
    public int UsersID { get; set; }
    public Users User { get; set; }
    public int Word_InDictionaryID { get; set; }
    public Word_InDictiononary Word_InDictiononary { get; set; }
}

FluentAPI:

modelBuilder
    .Entity<WordsUsers>()
    .HasKey(t=> new { t.ID, t.UsersID, t.Word_InDictionaryID });
modelBuilder
    .Entity<WordsUsers>()
    .HasOne(sc => sc.User)
    .WithMany(s => s.Words)
    .HasForeignKey(c => c.UsersID);
modelBuilder
    .Entity<WordsUsers>()
    .HasOne(sc => sc.Word_InDictiononary)
    .WithMany(s => s.Users)
    .HasForeignKey(c => c.Word_InDictionaryID);

Мой вопрос следующий :
При попытке добавления что-либо в эту таблицу выкидывается Exception странного происхождения:

Необработанное исключение: System.InvalidOperationException: The property 'ID' on entity type 'WordsUsers' has a temporary value. Either set a permanent value explicitly or ensure that the database is configured to generate values for this property.

Что не так со свойством ID класа WordsUsers?

READ ALSO
Объявление глобального массива

Объявление глобального массива

Вот заполняю массив, в этом файле шаблона компонента каталога в битриксе $GLOBALS['asda'] работает, а другом не работаетПочему? это же глобальная...

105
Установка 404 ответа

Установка 404 ответа

сайт лежит на NGINX, написан на PHPНа данный момент если обращаться к сайту по адресу site/catalog/price

154
Генерация swagger через консоль

Генерация swagger через консоль

Делаю документацию на swagger мой код использую библиотеку Swagger-PHP

105
Как получить данные в php из post запроса

Как получить данные в php из post запроса

отправляю запрос к php этим кодом:

135