Это моя таблица SQL:
i
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
Я использую Entity Framework и пытаюсь создать запрос LINQ, который возвращает все данные (все столбцы) для самого раннего времени / даты.значение на человека, где статус не равен нулю.Для текущего набора данных он должен вернуть строки для id (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 создавать свойство типа DateTime с нулевым значением?что еще больше усложняет мой запрос LINQ.
Заранее спасибо!