wlasnie cala sztuka ma polegac na tym aby nie uzyc ToList/ToArray, bo ten kawalek kodu linq ma byc dalej join'owany z kolejna czescia zapytania i calosc ma sie wykonac na bazie danych
sztuczka (trzeba uzyc ptzynajmniej jednej kol. z istniejacej tabeli, mam pewnosc ze w Tab1 cos jest, wiec Take(1) sie nie sypnie):
(from x in Tab1select new {Name=x.Name, Rate=x.Rate}).Concat(from x in Tab1.Take(1)select new {Name="Default", Rate=x.Rate/x.Rate})
wygenerowany SQL:
-- Region ParametersDECLARE @p0 NVarChar(7) SET @p0 = 'Default'-- EndRegionSELECT [t3].[Name], [t3].[Rate]FROM ( SELECT [t0].[Name], [t0].[Rate] FROM [Tab1] AS [t0] UNION ALL SELECT @p0 AS [value], [t2].[Rate] / [t2].[Rate] AS [value2] FROM ( SELECT TOP (1) [t1].[Rate] FROM [Tab1] AS [t1] ) AS [t2]) AS [t3]
wynik jest jaki chcialem, czyli zostal dodany wiersz 'Default', 1.0i calosc moze byc czescia wiekszego zapytania, ktore w calosci zostanie zrealizowane po stronie sql server
--If the facts don't fit the theory, change the facts.
Edytowano 1 raz. Ostatnio 2010-04-06 09:24:40 przez jak0b.
If the facts don't fit the theory, change the facts.