gpt4 book ai didi

c# - 从 IQueryable 转换为 T

转载 作者:行者123 更新时间:2023-11-30 16:19:07 25 4
gpt4 key购买 nike

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”。存在显式转换(是否缺少强制转换?)

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

最佳答案

你几乎肯定想使用 Single()在这种情况下:

return query.Single();

或者可能是SingleOrDefault() :

return query.SingleOrDefault();

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

如果可以合法地进行多场比赛,您应该考虑您希望发生什么。你可以使用 First()/FirstOrDefault ,例如。

关于c# - 从 IQueryable<T> 转换为 T,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15443535/

25 4 0