我遇到以下错误:
“ EntityFramework.SqlServer.dll中发生了'System.NotSupportedException'类型的未处理异常
其他信息:无法创建类型为“ Datos.Especialidad”的常量。在这种情况下,仅支持原始类型或枚举类型。“
尝试更正以下代码时:
IQueryable<Medico> listaMedicos =
from unMedico in context.Medico
select unMedico;
if (medico.Especialidad.Count > 0)
{
listaMedicos = FiltrarPor(listaMedicos,
x => x.Especialidad.Any(e => e.ID == (medico.Especialidad.FirstOrDefault().ID)));
}
return listaMedicos.ToList();
“ Medico”和“ Especialidad”之间的关系如下:
答案 0 :(得分:0)
尝试:
if (medico.Especialidad.Count > 0)
{
var medicoId = medico.Especialidad.FirstOrDefault().ID
listaMedicos = FiltrarPor(listaMedicos,
x => x.Especialidad.Any(e => e.ID == medicoId));
}
实际上,更好的是:
var medicoEspecialidad = medico.Especialidad.FirstOrDefault();
if (medicoEspecialidad != null)
{
var medicoId = medicoEspecialidad.ID
listaMedicos = FiltrarPor(listaMedicos, x => x.Especialidad.Any(e => e.ID == medicoId));
}