Представьте, что есть две таблицы.LINQ To SQL SubSelect Like Query
Order
+----------------+
| ID |
| Name |
+----------------+
OrderStatus
+----------------+
| ID |
| OrderId |
| StatusId |
+----------------+
В заказе может быть более одного OrderStatus, который можно было бы назвать OrderStatusHistory. у меня будет StronglyTypeObject Order, который descripted следующим
namespace my.project
{
public class Order
{
Int64 OrderId { get; set; }
String Name { get; set; }
Int64 StatusId { get; set; }
}
}
Это StatusId в Object Order предназначается, чтобы быть текущая (последняя) StatusId из OrderStatus табл.
Я попытался создать IQueryable Список объектов с LINQ. Вот мой, не работает;), Linq код
var result = from r in dbContext.ORDER
select new Order
{
OrderId = r.ID,
Name = r.Name,
StatusId = dbContext.OrderStatus
.Where(p => p.OrderId == r.ID).Last().StatusId
}
Я также пробовал работать с Max (р => p.XXX), но это не сработало. У кого-нибудь есть намек на эту проблему?
Любая помощь была бы оценена ...
Гордон
Это иллюстрирует, почему я критиковал Linq и аналогичные решения ORM. Вот проблема, которая имеет широко известное и довольно простое решение на хорошо установленном языке. Чтобы получить некоторые теоретические преимущества, вы отказываетесь от реальной производительности. Получите ли вы выгоды от Linq перевешивают время, необходимое для изучения избыточного (и своеобразного) способа запроса данных? См. Http://stackoverflow.com/questions/458802/doesnt-linq-to-sql-miss-the-point-arent-orm-mappers-subsonic-etc-sub-opti для обсуждения. –