Compound comparison in a LINQ join statement
I’ve been doing pretty much iPhone only postings recently, so this might change it up a bit.
So I am trying to go into our web application’s C# code to make some changes to the administration area of the web site. (This is usually the only place I feel comfortable making changes, as this is not an area that customers actually use.) We have a page that uses a store procedure to pull data from our SQL Server database and presents it on the page.
I needed to get more information out of the database than the store procedure was giving me, and I didn’t feel like modifying the procedure and then trying to rebuild the DBML, so I decided to convert it to a LINQ statement and bind to that instead of binding to the results of the stored procedure.
These things never go as planned. I took a similar LINQ statement that I found in the application, but it did not do exactly what I wanted to do. Basically, the LINQ statement I found used a simple comparison. I needed to check for two different things in my comparison, so after a bit of research and trial and error, here is what I came up with:
var p = (from ord in dc.orders join ordSt in dc.orderStatus on new { ord.orderID, b = true } equals new { ordSt.orderID, b = ordSt.isDeleted } where ord.customerID == custID select new { ord.orderID, ordSt.deletionDate } ); |
I had to add the little “b = true” and “b = ordSt.isDeleted” parts because it would not let me use just the “true” in the comparison. Ah, isn’t it great that LINQ is so simple?