MvcScaffolding: как поддерживать отношения «многие ко многим» между сущностями - PullRequest
7 голосов
/ 09 мая 2011

Я начал использовать MVC 3 и использовал MvcScaffolding для создания таких моделей:

namespace Conference.Models
{
    /*
     * Speaker can have many session
     * And session can have many speakers
     */

    public class Speaker
    {
        public Guid Id { get; set; }
        [Required]
        public string Name { get; set; }
        public string Description { get; set; }

        public virtual ICollection<Session> Sessions { get; set; }
    }

    public class Session
    {
        public Guid Id { get; set; }

        [Required]
        public string Title { get; set; }
        [Required]
        public string Description { get; set; }
        [Required]
        public DateTime Hour { get; set; }

        public virtual ICollection<Speaker> Speakers { get; set; }
    }
}

После создания лесов на этих моделях я могу создавать сеансы и динамиков, но в представлении динамиков я не могу выбрать какие-либо сеансы, ив режиме просмотра сеансов я не могу выбрать ни одного оратора.

Как я могу добавить их и сделать их вариантами с множественным выбором, чтобы я мог выбрать 10 ораторов для одного конкретного сеанса, например?

Заранее спасибоЙоси

1 Ответ

1 голос
/ 26 сентября 2011

Вам нужно это в вашем классе контекста: (это создаст таблицу ассоциации)

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
     modelBuilder.Entity<Speaker>()
                 .HasMany(parent => parent.Session)
                 .WithMany();
}
...