Oharra
Orrialde honetara sartzeak baimena behar du. Saioa hasteko edo direktorioak aldatzen saia zaitezke.
Orrialde honetara sartzeak baimena behar du. Direktorioak aldatzen saia zaitezke.
En los ejemplos siguientes se muestra cómo se puede combinar la select instrucción en C# y Select la instrucción en Visual Basic con otras características para formar proyecciones de consulta.
Ejemplo 1
En el ejemplo siguiente se usa la Select cláusula de Visual Basic (select cláusula en C#) para devolver una secuencia de nombres de contacto para Customers.
var nameQuery =
from cust in db.Customers
select cust.ContactName;
Dim nameQuery = From cust In db.Customers _
Select cust.ContactName
Ejemplo 2
En el ejemplo siguiente se usa la Select cláusula de Visual Basic (select cláusula en C#) y los tipos anónimos para devolver una secuencia de nombres de contacto y números de teléfono para Customers.
var infoQuery =
from cust in db.Customers
select new { cust.ContactName, cust.Phone };
Dim infoQuery = From cust In db.Customers _
Select cust.ContactName, cust.Phone
Ejemplo 3
En el ejemplo siguiente se usa la Select cláusula en Visual Basic (select cláusula en C#) y los tipos anónimos para devolver una secuencia de nombres y números de teléfono para los empleados. Los FirstName campos y LastName se combinan en un único campo (Name) y se cambia el nombre del HomePhone campo a Phone en la secuencia resultante.
var info2Query =
from emp in db.Employees
select new
{
Name = emp.FirstName + " " + emp.LastName,
Phone = emp.HomePhone
};
Dim info2Query = From emp In db.Employees _
Select Name = emp.FirstName & " " & emp.LastName, _
Phone = emp.HomePhone
Ejemplo 4
En el ejemplo siguiente se usa la Select cláusula en Visual Basic (select cláusula en C#) y los tipos anónimos para devolver una secuencia de todos los ProductIDvalores y un valor calculado denominado HalfPrice. Este valor se establece en el UnitPrice dividido por 2.
var specialQuery =
from prod in db.Products
select new { prod.ProductID, HalfPrice = prod.UnitPrice / 2 };
Dim specialQuery = From prod In db.Products _
Select prod.ProductID, HalfPrice = CDec(prod.UnitPrice) / 2
Ejemplo 5
En el ejemplo siguiente se usa la Select cláusula en Visual Basic (select cláusula en C#) y una instrucción condicional para devolver una secuencia de nombre de producto y disponibilidad del producto.
var prodQuery =
from prod in db.Products
select new
{
prod.ProductName,
Availability =
prod.UnitsInStock - prod.UnitsOnOrder < 0
? "Out Of Stock" : "In Stock"
};
Dim prodQuery = From prod In db.Products _
Select prod.ProductName, Availability = _
If(prod.UnitsInStock - prod.UnitsOnOrder < 0, _
"Out Of Stock", "In Stock")
Ejemplo 6
En el ejemplo siguiente se usa una cláusula de Visual Basic Select (select cláusula en C#) y un tipo conocido (Name) para devolver una secuencia de los nombres de los empleados.
public class Name
{
public string FirstName = "";
public string LastName = "";
}
void empMethod()
{
Northwnd db = new Northwnd(@"c:\northwnd.mdf");
var empQuery =
from emp in db.Employees
select new Name
{
FirstName = emp.FirstName,
LastName = emp.LastName
};
}
Public Class Name
Public FirstName As String
Public LastName As String
End Class
Dim db As New Northwnd("c:\northwnd.mdf")
Dim empQuery = From emp In db.Employees _
Select New Name With {.FirstName = emp.FirstName, .LastName = _
emp.LastName}
Ejemplo 7
En el ejemplo siguiente se usa Select y Where en Visual Basic (select y where en C#) para devolver una secuencia filtrada de nombres de contacto para los clientes de Londres.
var contactQuery =
from cust in db.Customers
where cust.City == "London"
select cust.ContactName;
Dim contactQuery = _
From cust In db.Customers _
Where cust.City = "London" _
Select cust.ContactName
Ejemplo 8
En el ejemplo siguiente se usa una Select cláusula de Visual Basic (select cláusula de C#) y tipos anónimos para devolver un subconjunto estructurado de los datos sobre los clientes.
var custQuery =
from cust in db.Customers
select new
{
cust.CustomerID,
CompanyInfo = new { cust.CompanyName, cust.City, cust.Country },
ContactInfo = new { cust.ContactName, cust.ContactTitle }
};
Dim custQuery = From cust In db.Customers _
Select cust.CustomerID, CompanyInfo = New With {cust.CompanyName, _
cust.City, cust.Country}, ContactInfo = _
New With {cust.ContactName, cust.ContactTitle}
Ejemplo 9
En el ejemplo siguiente se usan consultas anidadas para devolver los siguientes resultados:
Una secuencia de todos los pedidos y sus
OrderIDcorrespondientes.Una subsecuencia de los elementos del pedido que tienen descuento.
Cantidad de dinero ahorrada si no se incluye el costo de envío.
var ordQuery =
from ord in db.Orders
select new
{
ord.OrderID,
DiscountedProducts =
from od in ord.OrderDetails
where od.Discount > 0.0
select od,
FreeShippingDiscount = ord.Freight
};
Dim ordQuery = From ord In db.Orders _
Select ord.OrderID, DiscountedProducts = _
(From od In ord.OrderDetails _
Where od.Discount > 0.0 _
Select od), _
FreeShippingDiscount = ord.Freight