Linq2Sql Muitos: Muitos pergunta: Como você faria isso?

votos
7

Eu sei que muitos: muitos não é suportado em Linq2Sql mas eu estou trabalhando em uma solução alternativa

Eu estou trabalhando com o meu pequeno clonar SO e eu tenho uma tabela com perguntas e uma mesa com tags e uma tabela de vinculação QuestionTag então eu tenho um número clássico: muitos entre Perguntas e Etiquetas.

Para exibir a lista de perguntas na primeira página eu tenho essa classe Eu quero encher-se de uma consulta Linq2Sql

public class ListQuestion
{
   public int QuestionID { get; set; }
   public string Title{ get; set; }
   public IEnumerable<Tag> Tags { get; set; }
}


public IEnumerable<ListQuestion> GetQuestions()
{
   from q in Questions
   .................
   select new ListQuestion{ ... }
}

O problema é como eu deveria preencher a coleção Tag. Eu descobri isso não é possível fazer em uma única consulta, então eu dividi isto em 2 consultas, 1 para obter as perguntas e 1 para obter as tags e depois tentar se juntar a eles. Eu sei que muitos: muitos é suportado no quadro Entidade então como é que eles fazem isso? Como você faria isso? Qualquer abordagem alternativa? A consulta deve, naturalmente, ser eficiente.

Publicado 15/12/2008 em 17:08
fonte usuário
Em outras línguas...                            


1 respostas

votos
4

Isso pode funcionar para o seu caso;

from q in Questions
select new ListQuestion 
{ 
  Tags = q.QuestionTags.Select(qt => qt.Tag),
  QuestionId = q.ID,
  Title = q.Title
}
Respondeu 16/12/2008 em 09:31
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more