Это мой SQL таблицы:Помощь требуется на Linq запрос
я
d person datetime status description1 description2
----------- -------------------- ----------------------- ---------- --------------- ---------------
1 personA 2010-01-01 20:00:00.000 A desc1 desc2
2 personA 2010-01-01 21:00:00.000 B desc3 desc4
3 personA 2010-01-01 19:00:00.000 A desc5 desc6
4 personB 2010-01-01 20:00:00.000 A desc7 desc8
5 personB 2010-01-01 21:00:00.000 A desc9 desc10
7 personB 2010-01-01 18:00:00.000 NULL desc11 desc12
8 personB 2010-01-02 19:00:00.000 A desc13 desc14
9 personB 2010-01-02 20:00:00.000 A desc15 desc16
Я использую рамки сущности и попытаться создать запрос LINQ, который возвращает все данные (все столбцы) для самых ранних datetime на человека, где статус не равен «null». Для текущего набора данных он должен возвращать строки для идентификатора (3,4,8)
SQL-запроса будет что-то вроде этого:
SELECT A.*
FROM MyTable A
INNER JOIN (SELECT person, Min([datetime]) as mindate
FROM MyTable
WHERE [status] is not null
GROUP BY person, convert(date, [datetime])) B
on A.person = B.person
and A.datetime = B.mindate
Как выразить это в LINQ? Помимо запроса в целом я боролся с тем, что столбец datetime допускает нулевые значения (не показаны в наборе данных примера). Это приводит к тому, что enityframework создает свойство NULL-типа DateTime? что еще более осложняет мой запрос LINQ.
Заранее благодарен!