LINQ查询不返回单个值

时间:2018-02-08 16:13:46

标签: c# asp.net linq

我有这个查询,我想返回一个单独的值,即I.Id,我有一个参数,其中填充了从控制器发送到Dao的Id(Linq查询嵌套的位置)。 问题是,这个查询不仅仅返回一个值,而是返回该查询产生的表中的每个字段,我只想要Id。

这是查询:

public InscriptionDetail GetInscriptionIdByPersonId(int id)
        {
            using (var db = new HIQTrainingEntities())
            {
                var inscription =
                        from i in db.Inscriptions
                        join c in db.Certifications on i.PersonId equals c.PersonId
                        where i.PersonId == id
                        select new InscriptionDetail
                        {
                            Id = i.Id,
                        }; 
                return inscription.FirstOrDefault();
                 }
        }

有人可以帮我解决这个问题吗? 怎么了?

1 个答案:

答案 0 :(得分:9)

您的返回类型为InscriptionDetail。如果它只是你需要返回的int id,为什么不改为以下?

public int GetInscriptionIdByPersonId(int personId)
{
    using (var db = new HIQTrainingEntities())
    {
        var inscription =
            from i in db.Inscriptions
            join c in db.Certifications on i.PersonId equals c.PersonId
            where i.PersonId == personId
            select i.Id;
        return inscription.FirstOrDefault();
     }
 }