Как такое переписать на linq
От: LF  
Дата: 24.09.10 10:14
Оценка:
есть такой запрос (вытаскивает все записи с информацией о последнем событии об этой записи):
select * from 
    dbo.record as r 
inner join 
    dbo.history as h 
    on r.id = h.record_id
inner join
    (
        select 
            h2.record_id, 
            max([date_time]) as [date_time] 
        from 
            dbo.history as h2
        group by 
            h2.record_id
    ) as temp
    on h.record_id = temp.record_id
    and h.date_time = temp.date_time

Таблицы:
  Скрытый текст
create table [dbo].[record]
(
id int identity(1,1) not null,
issued_money decimal not null,
received_money decimal null,
receiver nvarchar(256) not null,
[object_id] int not null
)
go

alter table [dbo].[record] add constraint [record_pk] primary key (id)
go

alter table [dbo].[record] add constraint [fk_record_object_id]
foreign key([object_id]) references [dbo].[object] ([id])
go
create table [dbo].[history]
(
id int identity(1,1) not null,
[date_time] datetime not null,
comment ntext not null,
record_id int not null,
[user_id] int not null,
[action_id] int not null
)
go

alter table [dbo].[history] add constraint [history_pk] primary key (id)
go

alter table [dbo].[history] add constraint [fk_history_record_id]
foreign key([record_id]) references [dbo].[record] ([id])
go
alter table [dbo].[history] add constraint [fk_history_user_id]
foreign key([user_id]) references [dbo].[user] ([id])
go
alter table [dbo].[history] add constraint [fk_history_action_id]
foreign key([action_id]) references [dbo].[action] ([id])
go

alter table [dbo].[history] add constraint [df_history_comment] default ('') for [comment]
go

Как такой запрос переписать на linq? Спасибо.

И вопрос общего характера:
запросы, которые не укладываются в linq, как лучше оформлять: через хранимую процедуру или в виде plain sql в коде программы?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.