如何在排名中执行linq查询?

时间:2014-06-06 16:50:19

标签: c# linq asp.net-web-api

我有query1导致低级控制器和查询导致高级控制器。我试图获取我的方法,首先读取query1然后查询。当我登录时,它总是导致查询 - 低级页面,而不是高级页面。如果可能的话,请建议。

    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();
    }

谢谢。

1 个答案:

答案 0 :(得分:2)

query1永远不会为空。这是一个查询。

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

或者,简写:

return query1.FirstOrDefault() ?? query.FirstOrDefault();
相关问题