#linq #linq-to-sql #c#-4.0 #lambda #c#-3.0
#linq #linq-to-sql #c #-4.0 #лямбда #c #-3.0
Вопрос:
Кто-нибудь может показать мне два простых примера объединения таблиц 2 и 3 с использованием LAMBDA EXPRESSION(
например, с использованием таблиц Northwind (Orders,CustomerID,EmployeeID)?
Комментарии:
1. Выбирайте отсюда: msdn.microsoft.com/en-us/vcsharp/aa336746
2. спасибо, но я хочу версию ВЫРАЖЕНИЯ LAMDA
Ответ №1:
Код для объединения таблиц 3 является:
var list = dc.Orders.
Join(dc.Order_Details,
o => o.OrderID, od => od.OrderID,
(o, od) => new
{
OrderID = o.OrderID,
OrderDate = o.OrderDate,
ShipName = o.ShipName,
Quantity = od.Quantity,
UnitPrice = od.UnitPrice,
ProductID = od.ProductID
}).Join(dc.Products,
a => a.ProductID, p => p.ProductID,
(a, p) => new
{
OrderID = a.OrderID,
OrderDate = a.OrderDate,
ShipName = a.ShipName,
Quantity = a.Quantity,
UnitPrice = a.UnitPrice,
ProductName = p.ProductName
});
Спасибо
Комментарии:
1. Это отличный пример. Спасибо!
Ответ №2:
попробуйте это, чтобы объединить 2 таблицы с помощью лямбда-выражения
var list = dataModel.Customers
.Join( dataModel.Orders,
c => c.Id,
o => o.CustomerId,
(c, o) => new
{
CustomerId = c.Id,
CustomerFirstName = c.Firstname,
OrderNumber = o.Number
});
Комментарии:
1. Спасибо, но не могли бы вы рассказать мне, как использовать Select projector в этом коде и что я могу сделать, чтобы объединить таблицу 3? Спасибо
Ответ №3:
public void Linq102()
{
string[] categories = new string[]{
"Beverages",
"Condiments",
"Vegetables",
"Dairy Products",
"Seafood" };
List<Product> products = GetProductList();
var q =
from c in categories
join p in products on c equals p.Category
select new { Category = c, p.ProductName };
foreach (var v in q)
{
Console.WriteLine(v.ProductName ": " v.Category);
}
}