我有:
select distinct
to_date(to_char(i.fe_stax, 'DD/MM/YYYY'), 'DD/MM/YYYY') FechaProg,
a.id_ciud, t.no_ciud
from itinerario i
where to_date(to_char(i.fe_stax, 'DD/MM/YYYY'), 'DD/MM/YYYY') is not null
我想要这样的东西?
var tmp = (from itin in db.ITINERARIO
where itin.FE_STAX != null
select new
{
FechaProg = itin.FE_STAX.Value,
IdCiud = itin.EMPRESA_AEROPUERTO.AEROPUERTO.TTCIUD.CO_CIUD,
NoCiud = itin.EMPRESA_AEROPUERTO.AEROPUERTO.TTCIUD.NO_CIUD
}
).Distinct();
但我没有格式化日期列以应用DISTINCT
答案 0 :(得分:2)
问题是你在这里的日期列上应用distinct而不是匿名类型 - 这将永远不会起作用,因为该类型没有相等概念,因为它尚未为此类型定义。
答案 1 :(得分:0)
您可以创建一个IEqualityComparer来使质量基于日期的独特工作。如果是我,我可以尝试更基本的东西,比如:
var tmp = (from itin in db.ITINERARIO
where itin.FE_STAX != null
select new
{
FechaProg = itin.FE_STAX.Value,
IdCiud = itin.EMPRESA_AEROPUERTO.AEROPUERTO.TTCIUD.CO_CIUD,
NoCiud = itin.EMPRESA_AEROPUERTO.AEROPUERTO.TTCIUD.NO_CIUD,
ToDate = itin.to_date
}
).GroupBy(item => item.ToDate).Select(group => group.First());
基本上,您必须向匿名类型添加一个属性,该属性存储该日期的日期,组,然后返回每个组中的第一个元素。