如何使用Entity Framework生成此查询以返回相应的集合?

时间:2017-08-15 18:51:32

标签: c# entity-framework linq

如何使用Entity Framework生成此查询以返回问题只有一个主题的相应集合。

select * 
from TD_ENCUESTAS as e 
join td_preguntas as p on e.ENC_ID = p.PRE_ENC_ID 
join TC_TEMAS as t on p.PRE_TEM_ID = t.TEM_ID;

https://regex101.com/r/ehuXFY/1

2 个答案:

答案 0 :(得分:2)

鉴于模型设置正确,这很容易:

var encuestas = context.Encuestas
    .Include(x => x.Preguntas.Tema)

为此,您需要:

public class Encuesta
{
    public virtual ICollection<Pregunta> Preguntas { get; set; }
}

public class Pregunta
{
    public Tema Tema { get; set; }
}

public class Tema
{
    // not actually needed but for clarification
    public virtual ICollection<Pregunta> Preguntas { get; set; }
}

答案 1 :(得分:2)

using (DBEntities db = new DBEntities())
{
    var user = (from e in db.TD_ENCUESTAS
                join p in db.td_preguntas on e.ENC_ID equals p.PRE_ENC_ID
                join t in db.TC_TEMAS on p.PRE_TEM_ID equals t.TEM_ID;
                select new
                {
                   Name = e.ENC_DESCRIPCION,
                   Address = p.PRE_ACTIVO,
                   .....//So on...//
                });
}