Question

I am new to ASP.net and LINQ however tutorial are fairly short. I am creating a Web API project and I have created a class under my model called gender as follow.

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

I have not created a database linked to it and I haven't use Entity Framework, as I am still learning it. I created a list of genders in the controller actions just for training purpose. When I am trying to query the list with LINQ in order to be able to return the proper object I am getting a compiler error at the line var query = from gen in Gender below and I am not sure why.

    // 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;
    }
Était-ce utile?

La solution

Try

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

Query your list, genders, not the type Gender

Then you can return a single item by doing:

 return query.FirstOrDefault();

Of course you could compress all of this by doing:

return genders.FirstOrDefault(gen => gen.Id == id);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top