Array
(
)

EF 6, relação N para N

João Effting
   - 08 jul 2014

Boa tarde,
ontem eu assisti a um pocket aqui no DevMedia, sobre relação N para N com o EF 6, e resolvi fazer a modelagem de duas tabelas minha.
Professor e FaixasProfessor (faixa de karate).
Como explicado no video, eu deveria fazer uma associação entre essas duas tabelas (usar o Association, do Model).
Assim eu fiz, e tudo ocorreu certo. Porém, agora estou com um problema que não sei como solucionar (profurei em alguns lugares, mas não achei resposta).
Eu criei as Views para Professor, e tudo foi tranquilo. Consegui, através da associação, adicionar uma faixa para a tabela de FaixasProfessor. Porém, quando criei a View Create, da FaixasProfessor, eu precisei por um DropDownListFor, para que, quando for cadastrar uma nova faixa, diga para qual professor é a faixa.
Fiz igual a uns exemplos que utilizei no passado, com uma SelectList ... Na View, trouxe corretamente os professores cadastrados, mas, quando eu tento adicioná-los no banco, dá erro. Isso porque, eu busquei o Id do professor e o Nome, mas, quando na View eu coloco (model.Professor.FirstOrDefault().IdProfessor, onde na teoria, iria passar para ele o id selecionado na lista, não preenche com nada, e a "Property Navigation" de Professor, fica vazia, dando problema na inserção da tabela que foi criada (automatica), para salvar o N:N .
Alguém saberia me dizer qual a maneira correta de fazer isso?
(espero não ter ficado muito confuso. Caso tenha ficado, de noite eu exemplifico com algumas imagens do meu projeto)
Abs,
João

João Effting
   - 08 jul 2014

Só complementando um pouco mais, a Property Navigation fica com ICollection na classe. Na classe de professor foi tranquilo, porque eu criei na mão uma faixa, e fiz o db.PROFESSORES.FaixasProfessor.Add(faixa); E isso tudo foi no Controller.

Mas ali na View das Faixas, não sei como fazer esse "Add" pelo DropDownListFor .

Acredito eu que deveria ser feito, para que a referência seja de fato, criada.