Priyank Patel
Priyank Patel

Reputation: 6996

Lambda Expression for join operation

I have a SQL query which I am performing on two tables.

Here is my query

Select a.cSubGroupName,a.cAddedBy,a.dAddedOn,b.cGroupName 
from sys_Log_Account_SubGroup a,sys_Account_Primary_Group b 
where a.cAuthorizedStatus='Pending'  and a.nGroupCode=b.nGroupCode 

I am trying to perform the same query using Lambda expression.

Upvotes: 1

Views: 960

Answers (1)

Paul Fleming
Paul Fleming

Reputation: 24526

var query = tA
    .Where(a => a.cAuthorizedStatus == "Pending")
    .Join(tB, a => a.nGroupCode, b => b.nGroupCode, (a, b) => new 
    { 
        cSubGroupName = a.cSubGroupName, 
        cAddedBy = a.cAddedBy, 
        dAddedOn = a.dAddedOn, 
        cGroupName = b.cGroupName 
    });

or

var query = tA
    .Join(tB, a => a.nGroupCode, b => b.nGroupCode, (a, b) => new 
    { 
        cSubGroupName = a.cSubGroupName, 
        cAddedBy = a.cAddedBy, 
        dAddedOn = a.dAddedOn, 
        cGroupName = b.cGroupName,
        cAuthorizedStatus = a.cAuthorizedStatus
    })
    .Where(j => j.cAuthorizedStatus == "Pending")
    .Select(j => new
    { 
        cSubGroupName = j.cSubGroupName, 
        cAddedBy = j.cAddedBy, 
        dAddedOn = j.dAddedOn, 
        cGroupName = j.cGroupName
    });

Note that the last select is only necessary if you want to explicity exclude the cAuthorizedStatus column in the return set.

Upvotes: 2

Related Questions