Вот как вы могли бы написать этот запрос в лямбда:
var customers = new List {
new Customer { CompanyId = “AC”, CustomerId = “Customer1” },
new Customer { CompanyId = “not-AC”, CustomerId = “Customer2” },
};
var userCustomers = new List {
new UserCustomer { CompanyId = “AC”, CustomerId = “Customer1”, User = “not-admin” },
new UserCustomer { CompanyId = “AC”, CustomerId = “Customer1”, User = “admin” },
new UserCustomer { CompanyId = “AC”, CustomerId = “Customer2”, User = “not-admin” },
new UserCustomer { CompanyId = “AC”, CustomerId = “Customer2”, User = “admin” },
new UserCustomer { CompanyId = “not-AC”, CustomerId = “Customer1”, User = “not-admin” },
new UserCustomer { CompanyId = “not-AC”, CustomerId = “Customer1”, User = “admin” },
new UserCustomer { CompanyId = “not-AC”, CustomerId = “Customer2”, User = “not-admin” },
new UserCustomer { CompanyId = “not-AC”, CustomerId = “Customer2”, User = “admin” }
};
Используя выражение запроса
var query =
from c in customers
join uc in userCustomers on
new { c.CompanyId, c.CustomerId } equals new { uc.CompanyId, uc.CustomerId }
where c.CompanyId == “AC” && uc.User == “admin“
select c;
Использование лямбда-выражений
var lambda = customers.Where(c => c.CompanyId == “AC”) // inner sequence
.Join(userCustomers.Where(uc => uc.User == “admin”), // outer sequence
c => new { c.CompanyId, c.CustomerId }, // inner key selector
uc => new { uc.CompanyId, uc.CustomerId }, // outer key selector
(c, uc) => c);
Оба подхода дают тот же результат (клиент с идентификатором компании «AC» и идентификатором клиента «Customer1»), но, как вы можете видеть, выражение лямбда намного сложнее написать и прочитать!
Надеюсь, это поможет!
спасибо за ссылки Dzmitry ... обманщик полезен ... у меня уже есть 101 образец. – RameshVel
эй, где бы я получил исходный код для 101 образца .. любая идея .. я не мог найти там ... – RameshVel