我是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;
}
答案 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);