Не обнуляемая виртуальная собственность в Entity Framework Модель с первым кодом - PullRequest
0 голосов
/ 23 мая 2018

Мне нужно сгенерировать две таблицы базы данных с отношением один ко многим из моделей Entity Framework моего сайта;Блог и тег.Блог может иметь много тегов, но тег может принадлежать только одному блогу.

Модель «Мой блог» состоит из свойства ID (Guid) в качестве первичного ключа и свойства Name (строка).Модель сходства my Tag состоит из свойства ID (int) в качестве первичного ключа и свойства Name (строка).Модель тега также имеет виртуальное свойство Blog, которое должно генерировать внешний ключ для столбца идентификатора таблицы Blog.

Ниже приводится выдержка из классов моей модели:

public class Blog
{
    public Guid ID { get; set; }
    public string Name { get; set; }
}

public class Tag
{
    public int ID { get; set; }
    public string Name { get; set; }

    public virtual Blog Blog { get; set; }
}

Когда база данныхстолбец Blog_ID, созданный с использованием кода «сначала», в таблице тегов позволяет вставлять пустой или случайный идентификатор GUID.Как заставить его никогда не допускать пустых значений или значений, отличных от существующего и действительного идентификатора блога, используя подход, основанный на коде?

Ответы [ 3 ]

0 голосов
/ 23 мая 2018

Ваш класс должен быть объявлен аналогично приведенному ниже коду.

using System.ComponentModel.DataAnnotations;
suing System.ComponentModel.DataAnnotations.Schema

public class Tag
{
    public int ID { get; set; }
    public string Name { get; set; }
    [Required]
    [ForeignKey("BlogId")]
    public virtual Blog Blog { get; set; }

    public virtual Guid BlogId { get; set; };
}
0 голосов
/ 23 мая 2018

Вы должны добавить это поле в ваш класс тегов:

[Required]
public Guid BlogId { get; set; }
0 голосов
/ 23 мая 2018

Добавьте RequiredAttribute к вашему объявлению.

[Required]
public virtual Blog Blog { get; set; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...