c# - LINQ 连接查询结构导致 CS0119 错误

标签 c# asp.net-mvc linq

我正在尝试将 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/

相关文章:

c# - 使用 ASP.NET C# 在面板控件中迭代动态 FileUpload 控件集合

asp.net-mvc - 在 ASP.NET MVC 中以相同的 ActionResult 返回 JSON * 和 * HTML 的最佳方法是什么

c# - 如何在整个应用程序中设置通用日期格式 - Silverlight/Windows Phone 7

javascript - 使用调用 Ajax 将字符串数组发送到 mvc Controller

c# - 更改 ASP.NET Identity 以使用现有数据库

c# - c# 中是否已有条件 Zip 函数?

c# - 在日期时间范围内使用 ContentSearch-API 查询 Sitecore Lucene-index

c# - C#的字典序排序算法

c# - 在 C# 中获取两个 'DateTime' 之间的所有 DateTimes

c# - 在 Ubuntu 12.04 上使用 C# 的 g-wan