C# 使用LINQ的WHERE子句

C# 使用LINQ的WHERE子句,c#,asp.net,linq,C#,Asp.net,Linq,下面的代码将选择表中的所有行,但我只想选择传递到方法中的行的id。我尝试过多种方法,现在开始重新尝试,看看我是否能让它工作。感谢您的帮助 这是我的密码: [WebMethod] public static string getProjectByID(int id) { using (dbPSREntities4 myEntities = new dbPSREntities4()) { var thisProject = myEntities.tbProjects

下面的代码将选择表中的所有行,但我只想选择传递到方法中的行的id。我尝试过多种方法,现在开始重新尝试,看看我是否能让它工作。感谢您的帮助

这是我的密码:

 [WebMethod]
public static string getProjectByID(int id)
{
    using (dbPSREntities4 myEntities = new dbPSREntities4())
    {
        var thisProject = myEntities.tbProjects.ToList();

        JavaScriptSerializer serializer = new JavaScriptSerializer();
        var json = serializer.Serialize(thisProject);

        return json;
    }
}
您需要使用该方法筛选数据:

var thisProject = myEntities.tbProjects.Where(x => x.yourIdColumn == id).ToList();

where子句在这里相当简单。您只需要使用lambda表达式来指定匹配的条件。如果您不熟悉这些变量,可以在此处找到更多信息。最基本的是,您有一个变量名,在右侧后跟
=>
,您可以对该变量执行任何操作,我发现最容易将其视为一个
foreach
,其中您声明的变量名就是迭代变量(列表中的一项)


我认为如果你按照他的代码格式,让参数与他所指的“id”匹配,OP可能会更清楚。只是我的想法…@jimtollan是的,这是一个简单的改变。没有仔细看他的代码,只是拉了那一行,加了一个where。谢谢…这很简单,但这对LI来说是多么新鲜是的。再次感谢!在这里使用SingleOrDefault可能是一种更好的方法
var thisProject = myEntities.tbProjects.Where(x => x.Id == id).ToList();