Muszę sprawdzić, czy dwie daty są równe w zapytaniu Linq, a daty pochodzą z dwóch różnych tabel (nie jako parametru). Przyjrzałem się istniejącym rozwiązaniom w Internecie, a także w SO. niektóre nie mają zastosowania w moim przypadku, a niektóre nie są eleganckie. po prostu szukamy lepszego alternatywnego rozwiązania, jeśli takie istnieje.Eleganckie rozwiązanie do sprawdzenia, czy dwie daty są równe, w Linq (gdzie druga data NIE jest parametrem)
próbka zapytań (trzeba porównać dotychczas jedynie fragmenty):
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)
ten nie powiedzie się z powodu błędu „«data»nie jest obsługiwana w LINQ do Entitiies tylko inicjatorów, członków jednostki, a właściwości jednostka nawigacji. są obsługiwane "
ma post 'Date' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported ma rozwiązanie, które porównuje dzień, miesiąc i rok oddzielnie. Próbowałem zawinąć go w metodę rozszerzenia, ale wydaje się, że Linq nie lubi również metod rozszerzeń. ponieważ druga data nie jest zmienna, nie mogę użyć innego rozwiązania wymienionego w połączonym poście (i nie mogę nazwać metody "AddDays" na datę wewnątrz Linq z jakiegoś powodu). Wygląda na to, że w Linq jest wiele ograniczeń związanych z interfejsem API Data.
Czy porównując dzień, miesiąc i rok osobno działa zgodnie z oczekiwaniami? – dasblinkenlight
tak, działa, jeśli porównuję je osobno. – RKP