我正在尝试将 MVC 项目中的两个不同的类模型连接在一起,以便我可以对它们进行升序/降序排序。我已经尝试了几种排列,但似乎无法使 LINQ 查询正常运行。关于我做错了什么的任何建议?
var lateContact = from c in JPLatestContact
join s in JPStudent on c.ApplicationUserId equals
s.ApplicationUserId
orderby c.JPLatestContactDate ascending
select s;
我是这方面的初学者,但如果我理解正确的话,“c”和“s”是我自己编造的变量。 “JPLatestContact”和“JPStudent”是我想加入的两个模型/类/表,它们都有我可以加入它们的“ApplicationUserId”,我想按在JPLatestContact 模型,按升序排列。
对于我在上面编写的查询,我收到了 CS0119 错误“'JPTestContact' 是一种类型,在给定的上下文中无效。”
我不确定我的结构哪里出了问题,或者我是否以某种方式滥用了 JOIN 结构?
最佳答案
您不能在类型上运行 LINQ 选择,只能在该类型的集合上运行 - 即任何实现 IEnumerable<JPLatestContact>
的东西或 IQueryable<JPLatestContact>
,例如 List<JPLatestContact>
, dbContext.JPLatestContact
等。同样适用于 JPStudent
- 你需要一个收藏或IQueryable<JPStudent>
假设您正在查询 EF,查询应如下所示:
var lateContact = from c in dbContext.JPLatestContact
join s in dbContext.JPStudent on c.ApplicationUserId equals
s.ApplicationUserId
orderby c.JPLatestContactDate ascending
select s;
确保所有实体名称和属性名称与 EF 模型中定义的实际名称相匹配。
关于c# - LINQ 连接查询结构导致 CS0119 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52429276/