Как мне это сделать с помощью LINQ? - PullRequest
0 голосов
/ 26 ноября 2009

Я не совсем уверен, пытаюсь ли я сделать что-то слишком сложное для этого, но то, что я по сути хочу сделать, это перевернуть это:

declare @callid int
set @callid = 57
declare @update nvarchar(max)
declare update_cursor cursor for
select UpdateIdentity from [Helpdesk_HR].[dbo].[hdEvents] 
where CallID = @callid group by UpdateIdentity order by UpdateIdentity 
open update_cursor 

fetch next from update_cursor
into @update

while @@FETCH_STATUS = 0
begin

  select * 
  from [Helpdesk_HR].[dbo].[hdEvents]
  where UpdateIdentity = @update

  fetch next from update_cursor
  into @update
end
close update_cursor
deallocate update_cursor

в эквивалент LINQ. Может кто-нибудь сказать мне, если это вообще возможно с LINQ? если да как?

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 30 ноября 2009

Предполагается, что вы преобразовали базу данных с помощью SQLmetal.exe, это должно сделать это. У hdEvents должны быть нужные вам данные.

var identities = 
    from hdevent in context.hdEvents
    where hdevent.CallID == 57
    group hdevent by hdevent.UpdateIdentity into distinctIdentities
    select distinctIdentities.Key;

var hdEvents = 
    from indenity in identities
    from hdevent in context.hdEvents
    where hdevent.UpdateIdentity == indenity
    select hdevent;
0 голосов
/ 26 ноября 2009

Вам потребуется некоторое сопоставление O / R для вашей базы данных с использованием LINQ to SQL, а затем это можно сделать в LINQ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...