Tagi na forum.

Windows 14205 SQL Server 2132
sieci 6796 Windows XP 1921
SQL 6578 Outlook 1838
SBS 3868 Uprawnienia 1777
Windows 2003 2781 IIS 1636
Windows Server 2588 Office 1516
DNS 2315 Skrypt 1499

pokaż wszystkie tagi na forum

Concat z lokalna sekwencja

jak0b 2010-04-02 13:13:43
0
avatar
 
 
moze czesc zna ten blad Local sequence cannot be used in LINQ to SQL implementation of query operators except the Contains() operatorteraz jak go ominac?chce sekwencje z bazy polaczyc z jakas lista (nawet z jednym dodatkowym wierszem)czyli chcialbym zeby wygenerowal sie kod sql:
select Id,Name from MyTabunion allselect 0,'Default'--If the facts don't fit the theory, change the facts.
tagi: LINQ   LINQ to SQL   SQL
If the facts don't fit the theory, change the facts.


cherrythomas  2010-04-02 22:42:22 #1
0
avatar Microsoft
 
 
A sprobuj sobie tak:



[Kod]
var zapytanie = (from p in dataContext.MyTab select new { p.Id, p.Name } ).ToList().Union( from l in twojaLista select new { l.Id, l.Name } );



--Kliknij "Pomógł mi" jeśli ta odpowiedź jest pomocna  MCP, MCTS, MCSA http://tomaszwisniewski.com

Developer Evangelist | Microsoft Polska
Blog | http://tomaszwisniewski.com
Twitter | wisniewskit

jak0b  2010-04-06 09:23:35 #1.1
0
avatar
 
 
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.

Udziel odpowiedzi

avatar
Treść wpisu:

Zaloguj się lub Zarejestruj się aby wykonać tę czynność.

Idź na górę strony