6
Przechodzenie wstecz z SQL na LINQ2SQL jest czasami dość proste. Poniższe oświadczenieJak wygenerować klauzulę WHERE ... IN za pomocą LINQ2SQL?
SELECT user FROM users WHERE lastname='jones'
przekłada się dość łatwo w
from u in users where u.lastname='jones' select u
Ale w jaki sposób uzyskać następujące SQL generowane?
SELECT user FROM users WHERE lastname IN ('jones', 'anderson')
Idziesz do napotkasz problem z 'Contains' wyrażenie nie będąc translateable do SQL, tak że nie będzie działać, jeśli użytkownik jest' System.Data.Linq.Table' na LinqToSql DataContext. –
@klausbyskov: To nie jest prawda. Entity Framework/LINQ to Entities nie może tego zrobić w .NET 3.5, ale LINQ do SQL z przyjemnością zamieni to na SQL. Jedynym problemem jest to, że liczba elementów w klauzuli IN() (liczba elementów na liście "nazwa") jest ograniczona, z powodu ograniczeń ADO.NET. – Steven
@klausbyskov: Właściwie działa to dobrze - uruchomiłem kod i przyjrzałem się wynikowi w programie profilującym SQL. Czy oddałeś mi zniżkę? – Jedidja