Ho bisogno di verificare se due date sono uguali nella query di Linq e le date provengono da due tabelle diverse (non come parametro). Ho esaminato le soluzioni esistenti sul web e anche in SO. alcuni non sono applicabili nel mio caso e alcuni non sono eleganti. solo cercando una soluzione alternativa migliore se ce n'è.Soluzione elegante per verificare se due date sono uguali, in Linq (dove la seconda data NON è un parametro)
query di esempio (necessità di confrontare solo le parti di data):
var query = from t1 in Table1
join t2 in Table2 on t1.Id equals t2.ForeignKeyId
where t1.Id = someId
&& t1.Date1.Date.Equals(t2.Date2.Date)
questo uno non riesce con un errore " 'Data' non è supportata in LINQ to Entitiies Solo inizializzatori, i membri di entità, e le proprietà di navigazione entità. sono supportati "
il post 'Date' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported ha una soluzione che confronta giorno, mese e anno separatamente. Ho provato a racchiuderlo in un metodo di estensione, ma a Linq non piacciono neanche i metodi di estensione. poiché la seconda data non è una variabile, non posso usare l'altra soluzione menzionata nel post collegato (e non posso chiamare il metodo "AddDays" su una data all'interno di Linq per qualche motivo). Sembra che ci siano molte limitazioni con l'API Date in Linq.
Vuol confrontando giorno, il mese e l'anno di funzionare esclusivamente come previsto? – dasblinkenlight
sì, funziona se li paragono separatamente. – RKP