我正在尝试将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”,可以将它们加入其中,并且我想对所有结果按“ JPLatestContactDate”值排序JPLatestContact模型,按升序排列。
通过上面编写的查询,我得到一个CS0119错误“'JPLatestContact'是一种类型,在给定的上下文中无效”。
我不确定我的结构哪里出了问题,或者我是否以某种方式滥用了JOIN结构?
答案 0 :(得分:2)
您不能在一个类型上运行LINQ select,而只能在该类型的集合上运行-即实现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模型中定义的实际名称匹配。