如何查询List <t>?</t>

时间:2014-05-11 18:32:49

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

我是ASP.net和LINQ的新手但是教程相当简短。我正在创建一个Web API项目,我在我的模型下创建了一个名为gender的类,如下所示。

public class Gender
{
    public int Id { get; set; }
    public string Description { get; set; }
    public Language LanguageId { get; set; }
    public int InternalCode { get; set; }
    public bool isActive { get; set; }
    public DateTime CreatedAt { get; set; }
    public DateTime UpdatedAt { get; set; }
}

我还没有创建链接到它的数据库,我还没有使用Entity Framework,因为我还在学习它。我在控制器操作中创建了一个性别列表,仅用于培训目的。当我尝试使用LINQ查询列表以便能够返回正确的对象时,我在下面的行var query = from gen in Gender处收到编译器错误,我不确定原因。

    // Show
    // URI GET + api/Gender/id/
    [HttpGet]
    public Gender Gender(int id)
    {
        var genders = new List<Gender>();

        genders.Add(new Gender { Id = 1, Description = "Male" });
        genders.Add(new Gender { Id = 2, Description = "Female" });

        var query = from gen in Gender
                       where gen.Id == id 
                       select gen;
        return query;
    }

1 个答案:

答案 0 :(得分:2)

尝试

    var query = from gen in genders
                   where gen.Id == id 
                   select gen;

查询您的列表genders,而不是类型Gender

然后您可以通过执行以下操作返回单个项目:

 return query.FirstOrDefault();

当然你可以通过以下方式压缩所有这些:

return genders.FirstOrDefault(gen => gen.Id == id);