C# LINQ上的查询字符串

C# LINQ上的查询字符串,c#,.net,asp.net,linq,query-string,C#,.net,Asp.net,Linq,Query String,我正在尝试做下一件事:我有关于c的下一个代码: 例如,我有一个页面:items.aspx?nID=144 我如何构造一个linq查询,它将接受querystring参数并通过地址上显示的id(nID)检查items表中的值 该表具有以下设计,例如:id、title、bla、main通过Lambda表达式: int nID; string qs = QueryString["nID"]; if (Int32.TryParse(qs, nID) myDataContext.purchases

我正在尝试做下一件事:我有关于c的下一个代码:

例如,我有一个页面:
items.aspx?nID=144

我如何构造一个linq查询,它将接受querystring参数并通过地址上显示的
id(nID)
检查
items
表中的值


该表具有以下设计,例如:
id、title、bla、main

通过Lambda表达式:

int nID;
string qs = QueryString["nID"];
if (Int32.TryParse(qs, nID)
    myDataContext.purchases.Where(p => p.id == nID);
    // Other options if nID is a primary key
    //myDataContext.purchases.FirstOrDefault(p => p.id == nID);
    //myDataContext.purchases.SingleOrDefault(p => p.id == nID);
通过LINQ查询:

int nID;
string qs = QueryString["nID"];
if (Int32.TryParse(qs, nID)
    var purchase = from p in myDataContext.purchases
        where p.id == nID
        select p;

如果我理解正确,您只是试图从
QueryString
获取
nID
参数,然后在某个linq查询中重用其值以从数据库获取数据。您可以使用以下代码(在ASPX页面内)实现此功能:


不过,我不会将UI/ASP.NET逻辑(如获取nID)与查询本身混合,我会在另一个与业务相关的类中进行查询。@Davide Piras,我解决了一个问题—如何进行查询。我认为@Bside可以轻松升级代码。更新了答案谢谢。关于我在问题上发布的代码,我还有另一个问题:b.Text=myDataContext.purchases.Count().ToString()。。。。。。。我在这里该怎么做:where main=true?我认为你应该为第二个问题创建一个单独的帖子。这将更容易找到它,更多的人可以给你他们的意见。
int nID;
string qs = QueryString["nID"];
if (Int32.TryParse(qs, nID)
    var purchase = from p in myDataContext.purchases
        where p.id == nID
        select p;
int nID;

string value = Request.QueryString["nID"];
if(int.TryParse(value, out nID))
{
    // your linq query
}