目标/问题: 我正在尝试使用 First 或 FirstOrDefault 仅从数据库返回 1 个结果。我收到以下错误:
无法将类型“Program.Data.view”隐式转换为 System.Linq.Iqueryable 存在显式转换(是否缺少强制转换)
我尝试过的: 在查看了文档和许多 SO 文章之后,我尝试了不同的转换方式,包括下面的代码。 Cannot implicitly convert type 'System.Linq.IQueryable<>to . An explicit conversion exists (are you missing a cast?)等文章.大多数文章都是从 System.Linq.IQueryable<> 转向其他方向,而不是这个方向。无论哪种方式转换都应该相对容易,我错过了什么?:
IQueryable<Program.Data.view> someVariable = db.view.First(m => m.ID == Search_ID);
我的方法签名是:
public IQueryable<Program.Data.view> GetDataFromQuery()
最佳答案
First()
和类似的方法(如 FirstOrDefault()
或 Count()
或 Average()
)不返回 IQueryable<Program.Data.view>
并且不使用延迟执行。
First()
立即执行并返回只有一个(好吧,第一个)Program.Data.view
.
所以错误信息是正确的。将您的签名更改为
public Program.Data.view GetDataFromQuery()
和提到的行:
Program.Data.view someVariable = db.view.First(m => m.ID == Search_ID);
关于c# - 无法将类型 'Program.Data.View' 隐式转换为 System.linq.iqueryable<Program.Data.View>。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52558818/