user576510
user576510

Reputation: 5905

using Case or if statment in LINQ?

I have a LINQ query (using with EF)

I have the following LINQ query. Kindly guide me how I can use case or if statement in this query.

var selectedResults=
    from InvoiceSet in Invoices
    join BookedAreasSet in BookedAreas 
    on InvoiceSet.InvoiceID equals BookedAreasSet.InvoiceID
    join AreaSet in Areas on BookedAreasSet.AreaID equals AreaSet.AreaID
    select new       
    {
         InvoiceSet.InvoiceNumber,
         InvoiceSet.Amount,
         InvoiceSet.TotalDiscount,
         InvoiceSet.GST,       
         InvoiceSet.PaymentDate,
         InvoiceSet.ShoppingCentreID,
         BookedAreasSet.BookedAreaID,
         AreaSet.Name //Here I want to use Case/ If statment based on some other column
    };

Please guide.

Thanks

Upvotes: 0

Views: 169

Answers (1)

Adil
Adil

Reputation: 148140

You can do it like this but using ternary operator ?

var selectedResults=
    from InvoiceSet in Invoices
    join BookedAreasSet in BookedAreas 
    on InvoiceSet.InvoiceID equals BookedAreasSet.InvoiceID
    join AreaSet in Areas on BookedAreasSet.AreaID equals AreaSet.AreaID
    select new     {InvoiceSet.InvoiceNumber,InvoiceSet.Amount,InvoiceSet.TotalDiscount,InvoiceSet.GST,       InvoiceSet.PaymentDate,InvoiceSet.ShoppingCentreID,BookedAreasSet.BookedAreaID,
AreaSet.Name, YourColumn = AreaSet.YourColumnName == yourVariable ? "firstResult" : "other result?"}

You can combine multiple conditions this way.

AreaSet.YourColumnName == yourVariable ? "firstResult" : AreaSet.YourColumnName == YoursecondVariable ? "Some result" : "Some other result"

Upvotes: 5

Related Questions