3
public DoctorClass GetById(int id)
    {
        using (var context = new EmrContext())
        {
            var query = from d in context.Doctors
                        join c in context.Users on d.Id equals c.Id
                        where d.Id==id
                        select new DoctorClass { Email = c.Email, FirstName = c.FirstName, LastName = c.LastName, Post = d.Post };
            return query;
        }
    }

这是错误:无法将类型“System.Linq.IQueryable”隐式转换为“Mvc.Models.DoctorClass”。存在显式转换(您是否缺少演员表?)

我需要用“查询”做什么来解决这个问题?

4

2 回答 2

3

Single()在这种情况下,您几乎可以肯定要使用:

return query.Single();

或者可能SingleOrDefault()

return query.SingleOrDefault();

这是假设肯定只有一个这样的结果,如果有的话。(两者的区别在于如果没有匹配的记录会发生什么。SingleOrDefault将返回 null;Single将引发异常。

如果可以合法地进行多个匹配,您应该考虑您想要发生的事情。例如,您可以使用First()/ FirstOrDefault

于 2013-03-15T23:12:49.183 回答
0

您正在返回IQueryable<DoctorClass>需要返回的地方DoctorClass

你可以使用:

return query.FirstOrDefault();

这将返回query.

于 2013-03-15T23:13:15.797 回答