在我的第一个问题中,我没有很好地解释。但是现在我需要从实体框架类中选择一些列。
var Muestra = Cecytec.asignatura.Select(Z => new asignatura { nombre = Z.nombre, horasPorSemana = Z.horasPorSemana, nivel = Z.nivel, unidades = Z.unidades }).ToList();
从我的课(表)“ signsigna”我有这个:
public partial class asignatura
{
public asignatura()
{
this.criterioevaluacion = new HashSet<criterioevaluacion>();
this.evaluacion = new HashSet<evaluacion>();
this.examen = new HashSet<examen>();
this.alumno = new HashSet<alumno>();
this.horario = new HashSet<horario>();
this.profesor = new HashSet<profesor>();
}
public int idAsignatura { get; set; }
public Nullable<int> horasPorSemana { get; set; }
public string nombre { get; set; }
public Nullable<int> nivel { get; set; }
public Nullable<int> unidades { get; set; }
public int semestres_idsemestres { get; set; }
public virtual semestres semestres { get; set; }
public virtual ICollection<criterioevaluacion> criterioevaluacion { get; set; }
public virtual ICollection<evaluacion> evaluacion { get; set; }
public virtual ICollection<examen> examen { get; set; }
public virtual ICollection<alumno> alumno { get; set; }
public virtual ICollection<horario> horario { get; set; }
public virtual ICollection<profesor> profesor { get; set; }
}
我想展示:“ nombre”,“ horasPorSemana”,“ nivel”,“ unidades”和“ calificacion”
注意:“ calificacion”在另一个类别中
public partial class evaluacion
{
public int unidad { get; set; }
public Nullable<double> calificacion { get; set; }
public Nullable<int> inasistencia { get; set; }
public string observaciones { get; set; }
public int asignatura_idAsignatura { get; set; }
public virtual asignatura asignatura { get; set; }
}
最佳答案
在投影中,您将从数据库中投影到实体。您需要做的是以下两种选择之一:
1)投影到动态对象
var Muestra = Cecytec
.asignatura
.Select(Z => new
{
nombre = Z.nombre,
horasPorSemana = Z.horasPorSemana,
nivel = Z.nivel,
unidades = Z.unidades,
evaluacion_calificacion = Z.evaluacion.Select(e => e.calificacion)
})
.ToList();
这将为您提供存储在变量
Muestra
中的动态对象的列表,每个对象都包含评估表中IEnumerable
个calificacion
值。2)投影到具有所需属性的预定义类
这与上面的类似,但是您只定义了一个类来保存属性。
public class ProjectionResult
{
public string nombre { get; set; }
public Nullable<int> horasPorSemana { get; set; }
public Nullable<int> nivel { get; set; }
public Nullable<int> unidades { get; set; }
public IEnumerable<Nullable<double>> evaluacion_calificacion { get; set; }
}
然后像这样运行投影:
var Muestra = Cecytec
.asignatura
.Select(Z => new ProjectionResult
{
nombre = Z.nombre,
horasPorSemana = Z.horasPorSemana,
nivel = Z.nivel,
unidades = Z.unidades,
evaluacion_calificacion = Z.evaluacion.Select(e => e.calificacion)
})
.ToList();
这将为您提供存储在变量
ProjectionResult
中的Muestra
个对象的列表,每个对象都包含来自评估表的IEnumerable
个calificacion
值。