Как сделать отношения между таблицами в asp.net mvc? - PullRequest
0 голосов
/ 11 января 2019

Я использую "AspIdentity" в проекте. В проекте все стандартные модели "AspIdentity" и одна модель "Пост". Мне бы хотелось, чтобы у каждого сообщения был свой ApplicationUser, а у каждого ApplicationUser - своя собственная коллекция сообщений. И уже есть одна база данных, в которой есть таблица, хранящая информацию о пользователях.

Я пытался создать таблицы, контекст данных и базу данных независимо, но не нашел никакой информации, но не нашел информацию о деле, близком к моему.

Почтовая модель:

public class Post
{
    public int Id { get; set; }
    public string Body { get; set; }
    public string ApplicationUserId { get; set; }
    public ApplicationUser ApplicationUser { get; set; }
}

ApplicationUser модель:

public class ApplicationUser : IdentityUser
{
    public int Year { get; set; }
    public virtual ICollection<Post> Posts { get; set; }
    public ApplicationUser()
    {
        Posts = new List<Post>();
    }
}

Я ожидаю увидеть контекст данных в ответе и запрос для создания таблицы сообщений.

1 Ответ

0 голосов
/ 13 января 2019

Вам необходимо переопределить метод OnModelCreating в вашем классе DbContext (предположительно ApplicationDbContext). В переопределенном методе установите связь между классами. Ниже приведен пример кода, который должен решить вашу проблему:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);
    modelBuilder.Entity<ApplicationUser>()
                .HasMany(e => e.Posts)
                .WithRequired(e => e.ApplicationUser)
                .HasForeignKey(e => e.ApplicationUserId)
                .WillCascadeOnDelete(false);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...