I am having problem converting my SQL query to LINQ. How would you create a case statement in LINQ where clause? Here is my current SQL query, does anyone have any advice?
ALTER PROCEDURE [dbo].[CustomerBySearch]
@FirstName VARCHAR(255) = '',
@LastName VARCHAR(255) = '',
@Email VARCHAR(255) = '',
@Phone VARCHAR(30) = ''
AS
BEGIN
SELECT CustomerId,
Title,
FirstName,
LastName,
RegistrationDate,
DayPhone,
Mobile,
LoginEmail
FROM CustomerInfo
HAVING CASE WHEN @FirstName = '' THEN @FirstName ELSE FirstName END Like @FirstName + '%'
AND
CASE WHEN @LastName = '' THEN @LastName ELSE LastName END Like @LastName + '%'
AND
CASE WHEN @Email = '' THEN @Email ELSE LoginEmail END Like @Email
AND
(
CASE WHEN @Phone = '' THEN @Phone ELSE DayPhone END LIKE '%' + @Phone
OR
CASE WHEN @Phone = '' THEN @Phone ELSE Mobile END LIKE '%' + @Phone
)
ORDER BY CustomerId DESC
END
I take it this is some sort of filter options function?
If so, something like this should work with linq…