【发布时间】:2017-07-04 13:02:17
【问题描述】:
当我将数据库实体映射到项目中的 DTO 时,我会在单个模型中创建标题及其相关语言表的属性。 当在几个属性中重复这个条件时,生成的查询非常大,让我在查询中浪费了很多时间。我怎样才能提出这个只做一次比较?
return s => new DtoTimelineEvent()
{
Id = s.tline_even_id_i,
TimelineId = s.tline_id_i,
Tipo = (TimeLineEventTypes)s.even_tip_id_i,
Fecha = s.fecha_dt,
Titulo = s.t_tline_even_rel_idi.Any(a => a.idi_id_t == (byte)cultura) ? s.t_tline_even_rel_idi.FirstOrDefault(a => a.idi_id_t == (byte)cultura).Titulo : s.t_tline_even_rel_idi.FirstOrDefault().Titulo,
Descripcion = s.t_tline_even_rel_idi.Any(a => a.idi_id_t == (byte)cultura) ? s.t_tline_even_rel_idi.FirstOrDefault(a => a.idi_id_t == (byte)cultura).Descripcion : s.t_tline_even_rel_idi.FirstOrDefault().Descripcion,
SocialId = s.t_tline_even_rel_idi.Any(a => a.idi_id_t == (byte)cultura) ?
s.t_tline_even_rel_idi.FirstOrDefault(a => a.idi_id_t == (byte)cultura).obj_id :
s.t_tline_even_rel_idi.FirstOrDefault().obj_id,
}
“Titulo”、“Description”和“SocialId”具有相同的条件,并且在更多字段中重复,如何改进此查询?
【问题讨论】:
标签: c# .net entity-framework linq lambda