user3070072
user3070072

Reputation: 620

How to execute linq queries in ranking?

I have query1 which leads to low-level controller and query which leads to high level controller. I am trying to get my method, to read the query1 first then the query. When I login, it always lead to query - low level page, instead of high-level page. Please advice, if possible.

    public UserDetail full(string username, string password)
    {
         var query1 = from s in db.Subscriptions
                    join u in db.UserDetails on s.sUID equals u.uID
                    where s.sPrice_ExpiryDate >= DateTime.Now &&
                    s.sPID.Value == 163 &&
                    s.sWIC_All.Value == true &&
                    u.uUsername == username &&
                    u.uPassword == password
                    select u;

        var query = from s in db.Subscriptions
                    join u in db.UserDetails on s.sUID equals u.uID
                    where s.sTrialExpiryDate >= DateTime.Now &&
                    s.sPID.Value == 163 &&
                    u.uUsername == username &&
                    u.uPassword == password
                    select u; 

       if (query1 != null)
        {
            return query1.FirstOrDefault();
        }

        return query.FirstOrDefault();
    }

Thank you.

Upvotes: 1

Views: 55

Answers (1)

StriplingWarrior
StriplingWarrior

Reputation: 156654

query1 will never be null. It is a query.

var result1 = query1.FirstOrDefault();
if (result1 != null)
{
    return result1;
}
return query.FirstOrDefault();

Or, in shorthand:

return query1.FirstOrDefault() ?? query.FirstOrDefault();

Upvotes: 2

Related Questions