Hier ist, wie Sie diese Abfrage in Lambda schreiben könnte:
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” }
};
Mit Abfrageausdruck
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;
Mit Lambda-Ausdrücke
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);
Beide Ansatz führt zum gleichen Ergebnis (Kunde mit Firmen-ID "AC" und Kunden-ID "Customer1"), aber wie Sie sehen können, ist Lambda-Ausdruck viel schwerer zu schreiben und zu lesen!
Hoffe, das hilft!
danke für die links Dzmitry ... der cheat sheet ist nützlich ... ich habe bereits einen blick auf 101 proben .. – RameshVel
hey wo würde ich den quellcode für die 101 proben .. irgendeine idee .. ich könnte nicht finden Sie dort ... – RameshVel