使用以下查询

时间:2015-01-07 09:03:29

标签: c# asp.net linq

public ClientApp_Detail GetHomeDetbyClientID_AppID(string clientid, long appId)
{
    ClientApp_Detail sp = null;

    using (HelpDeskDataContext HDDC = Conn.GetContext())
    {

        sp = (from st in HDDC.ClientApp_Details where  st.ClientID == clientid && st.AppID == appId && st.IsDeleted != true select st).FirstOrDefault();

    }

    return sp;
}

由于我是.NET的初学者,我无法理解上述查询的使用以及为什么它从st in声明。请解释这种类型查询的用法以及返回sp的内容(示例)变量

2 个答案:

答案 0 :(得分:2)

from st in HDDC.ClientApp_Details

就像是

foreach(var st in HDDC.ClientApp_Details)

比通过以下评论过滤

st.ClientID == clientid && st.AppID == appId && st.IsDeleted != true select st

最后

FirstOrDefault();
如果没有匹配,

将返回第一个elemant或默认值(默认值(T))。

P.S。正如已经讲过的那样,请看一下LINQ教程。这很简单。 或者您可以下载LinqPad。 LINQ sampel包含在内,可能是使用LINQ的最佳方式。

答案 1 :(得分:-1)

这里的HelpDeskDataContext是一个实体框架上下文。

(from st in HDDC.ClientApp_Details where  st.ClientID == clientid && st.AppID == appId && st.IsDeleted != true select st).FirstOrDefault();

以上语句是LINQ查询,其中 ClientApp_Details 是HelpDeskDataContext的实体。

就像一个SQL查询---

select * from ClientApp_Details where st.ClientID==clientid && st.AppID == appId && st.IsDeleted != true

FirstOrDefault()如果与条件不符,则会使用,然后返回默认值。