различаются даты в LINQ To Entities? - PullRequest
1 голос
/ 16 июля 2009

у меня есть:

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

Ответы [ 2 ]

2 голосов
/ 19 октября 2009

Проблема в том, что вы применяете отличное не к столбцу даты здесь, а к анонимному типу - это никогда не будет работать, так как тип не имеет понятия равенства, поскольку он не был определен для этого типа.

0 голосов
/ 28 января 2012

Вы можете создать 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());

По сути, вам нужно добавить свойство к анонимному типу, в котором будет храниться дата, сгруппировать по этой дате, а затем вернуть первый элемент в каждой группе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...