Мне нужно реплицировать оператор T-SQL с внутренним выбором, используя LINQ:
SELECT *,
CustomerTypes.Description as CustomerType,
(Select Min(Distinct DocumentStatistics.StatDateTime) As LastStatCheck
From DocumentStatistics
Where DocumentStatistics.CustomerId = Customers.CustomerId) As LastStatCheck
FROM Customers
INNER JOIN CustomerTypes ON Customers.CustomerTypeID = CustomerTypes.CustomerTypeID
ORDER BY CustomerName
Следующее является самым близким, к которому я смог прийти, но в итоге возвращается вся DocumentStatistics, более 40 000.
Dim docQuery = (From doc In data.DocumentStatistics _
Select doc)
Dim query = From customer In data.Customers _
Join docStat In docQuery _
On customer.CustomerID Equals docStat.CustomerID _
Select Customer = customer, LastStatCheck = _
(From doc In docQuery Where customer.CustomerID = doc.CustomerID _
Select doc.StatDateTime).Distinct().Min()
Чего мне не хватает? Как мне скопировать исходный оператор SQL?
Я могу взять примеры VB или C #, и я работаю с базой данных SQL Server.