이 항목의 예제에서는 쿼리 식 구문을 사용하여 Skip을 쿼리하는 방법을 보여주며, Take 및 메서드를 사용하는 방법을 시연합니다. 이러한 예제에 사용된 AdventureWorks 판매 모델은 AdventureWorks 샘플 데이터베이스의 Contact, Address, Product, SalesOrderHeader 및 SalesOrderDetail 테이블에서 빌드됩니다.
이 항목의 예제에서는 다음과 같은 using
/Imports
문을 사용합니다.
using System;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Objects;
using System.Globalization;
using System.Data.EntityClient;
using System.Data.SqlClient;
using System.Data.Common;
Option Explicit On
Option Strict On
Imports System.Data.Objects
Imports System.Globalization
건너뛰기
예시
다음 예제에서는 이 메서드를 Skip 사용하여 연락처 테이블의 처음 세 연락처를 제외한 모든 연락처를 가져옵니다.
using (AdventureWorksEntities context = new AdventureWorksEntities())
{
// LINQ to Entities only supports Skip on ordered collections.
IOrderedQueryable<Product> products = context.Products
.OrderBy(p => p.ListPrice);
IQueryable<Product> allButFirst3Products = products.Skip(3);
Console.WriteLine("All but first 3 products:");
foreach (Product product in allButFirst3Products)
{
Console.WriteLine($"Name: {product.Name} \t ID: {product.ProductID}");
}
}
Using context As New AdventureWorksEntities
'LINQ to Entities only supports Skip on ordered collections.
Dim products As IOrderedQueryable(Of Product) = _
context.Products.OrderBy(Function(p) p.ListPrice)
Dim allButFirst3Products As IQueryable(Of Product) = products.Skip(3)
Console.WriteLine("All but first 3 products:")
For Each product As Product In allButFirst3Products
Console.WriteLine("Name: {0} \t ID: {1}", _
product.Name, _
product.ProductID)
Next
End Using
예시
다음 예제에서는 이 메서드를 Skip 사용하여 시애틀의 처음 두 주소를 제외한 모든 주소를 가져옵니다.
using (AdventureWorksEntities context = new AdventureWorksEntities())
{
ObjectSet<Address> addresses = context.Addresses;
ObjectSet<SalesOrderHeader> orders = context.SalesOrderHeaders;
//LINQ to Entities only supports Skip on ordered collections.
var query = (
from address in addresses
from order in orders
where address.AddressID == order.Address.AddressID
&& address.City == "Seattle"
orderby order.SalesOrderID
select new
{
City = address.City,
OrderID = order.SalesOrderID,
OrderDate = order.OrderDate
}).Skip(2);
Console.WriteLine("All but first 2 orders in Seattle:");
foreach (var order in query)
{
Console.WriteLine($"City: {order.City} Order ID: {order.OrderID} Total Due: {order.OrderDate:d}");
}
Using context As New AdventureWorksEntities
Dim orders As ObjectSet(Of SalesOrderHeader) = context.SalesOrderHeaders
Dim addresses As ObjectSet(Of Address) = context.Addresses
'LINQ to Entities only supports Skip on ordered collections.
Dim query = ( _
From address In addresses _
From order In orders _
Where address.AddressID = order.Address.AddressID _
And address.City = "Seattle" _
Order By order.SalesOrderID _
Select New With _
{ _
.City = address.City, _
.OrderID = order.SalesOrderID, _
.OrderDate = order.OrderDate _
}).Skip(2)
Console.WriteLine("All but first 2 orders in Seattle:")
For Each order In query
Console.WriteLine("City: {0} Order ID: {1} Total Due: {2:d}", _
order.City, order.OrderID, order.OrderDate)
Next
End Using
잡다
예시
다음 예제에서는 이 메서드를 Take 사용하여 연락처 테이블에서 처음 5개의 연락처만 가져옵니다.
using (AdventureWorksEntities context = new AdventureWorksEntities())
{
IQueryable<Contact> first5Contacts = context.Contacts.Take(5);
Console.WriteLine("First 5 contacts:");
foreach (Contact contact in first5Contacts)
{
Console.WriteLine($"Title = {contact.Title} \t FirstName = {contact.FirstName} \t Lastname = {contact.LastName}");
}
}
Using context As New AdventureWorksEntities
Dim contacts As ObjectSet(Of Contact) = context.Contacts
Dim first5Contacts As IQueryable(Of Contact) = contacts.Take(5)
Console.WriteLine("First 5 contacts:")
For Each contact As Contact In first5Contacts
Console.WriteLine("Title = {0} " & vbTab & " FirstName = {1} " _
& vbTab & " Lastname = {2}", contact.Title, contact.FirstName, _
contact.LastName)
Next
End Using
예시
다음 예제에서는 이 메서드를 Take 사용하여 시애틀에서 처음 세 개의 주소를 가져옵니다.
String city = "Seattle";
using (AdventureWorksEntities context = new AdventureWorksEntities())
{
ObjectSet<Address> addresses = context.Addresses;
ObjectSet<SalesOrderHeader> orders = context.SalesOrderHeaders;
var query = (
from address in addresses
from order in orders
where address.AddressID == order.Address.AddressID
&& address.City == city
select new
{
City = address.City,
OrderID = order.SalesOrderID,
OrderDate = order.OrderDate
}).Take(3);
Console.WriteLine("First 3 orders in Seattle:");
foreach (var order in query)
{
Console.WriteLine($"City: {order.City} Order ID: {order.OrderID} Total Due: {order.OrderDate:d}");
}
}
Dim city = "Seattle"
Using context As New AdventureWorksEntities
Dim orders As ObjectSet(Of SalesOrderHeader) = context.SalesOrderHeaders
Dim addresses As ObjectSet(Of Address) = context.Addresses
Dim query = ( _
From address In addresses _
From order In orders _
Where address.AddressID = order.Address.AddressID _
And address.City = city _
Select New With _
{ _
.City = address.City, _
.OrderID = order.SalesOrderID, _
.OrderDate = order.OrderDate _
}).Take(3)
Console.WriteLine("First 3 orders in Seattle:")
For Each order In query
Console.WriteLine("City: {0} Order ID: {1} Total Due: {2:d}", _
order.City, order.OrderID, order.OrderDate)
Next
End Using