LINQ联接查询结构导致CS0119错误

Rem*_*mi 5 c# linq asp.net-mvc

我正在尝试将MVC项目中的两个不同的类模型连接在一起,以便我可以对它们进行升序/降序排序。我已经尝试了几种排列方式,但似乎无法使LINQ查询发挥出色。关于我在做什么错的任何建议吗?

var lateContact = from c in JPLatestContact
                  join s in JPStudent on c.ApplicationUserId equals 
                  s.ApplicationUserId
                  orderby c.JPLatestContactDate ascending
                  select s;
Run Code Online (Sandbox Code Playgroud)

我是一个初学者,但是如果我正确理解这一点,那么“ c”和“ s”就是我自己做的变量。“ JPLatestContact”和“ JPStudent”是我要加入的两个模型/类/表,都具有“ ApplicationUserId”,我可以将它们加入其中,并且我想对所有结果按“ JPLatestContactDate”值排序JPLatestContact模型,按升序排列。

通过上面编写的查询,我得到一个CS0119错误“'JPLatestContact'是一种类型,在给定的上下文中无效”。

我不确定我的结构哪里出了问题,还是我在某种程度上滥用了JOIN结构?

das*_*ght 2

您不能在类型上运行 LINQ 选择,只能在该类型的集合上运行 - 即任何实现IEnumerable<JPLatestContact>or的东西IQueryable<JPLatestContact>,例如List<JPLatestContact>,dbContext.JPLatestContact等。同样适用JPStudent- 您需要一个集合 or 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;
Run Code Online (Sandbox Code Playgroud)

确保所有实体名称和属性名称与 EF 模型中定义的实际名称匹配。