c# - 'Project1.ID' 中的未知列 'where clause'

标签 c# mysql entity-framework linq linq-to-entities

我有以下表格

+--------+     +---------+     +---------+
| Class  |1   N| Student |1   N|  Test   |
+--------+<--->+---------+<--->+---------+
|ClassID |     |ClassID  |     |TestID   |
|Desc    |     |StudentID|     |StudentID|
+--------+     |Name     |     |Name     |
               +---------+     |Score    |
                               +---------+ 

我需要确定类(class)中第一名学生的总分。这个学生可以有一个、多个或没有现有的测试

所以结果应该是这样的

ClassDesc | StudentName | ScoreCount
----------+-------------+-----------
C1        | Max         |        201
C2        | Tom         |       null 

我有以下代码

using (myEntities ctx = new myEntities())
{
var Reslut = ctx.Class
        .Select(x => new 
        {
        ClassDesc = x.Desc,
        StudentName = x.Student.FirstOrDefault().Name,
        ScoreCount = x.Student.FirstOrDefault().Test.Sum(t => t.Score) //Error here
        }).ToList();
}

但它给了我错误

Unknown column 'Project1.ClassID' in 'where clause'

最佳答案

尝试以下操作:

var result = (from cls in ctx.Class
                           join stdt in ctx.Student on cls.ClassID equals stdt.ClassID                             
                           select new
                           {
                                  ClassDesc = cls.Desc,
                                  StudentName = stdt.Name,
                                  ScoreCount = stdt.Test.Sum(t => t.Score)
                           }).ToList();

应该生成类似于以下的 SQL:

SELECT   
    Class.ClassID,   
    Class.[Desc],  
    Student.Name,  
    (  
       SELECT  
            SUM(Test.Score)  
            FROM dbo.Test  
            WHERE Student.StudentID = Test.StudentID  
    ) AS ScoreSum  
    FROM  dbo.Class  
    INNER JOIN dbo.Student ON Class.ClassID = Student.ClassID

关于c# - 'Project1.ID' 中的未知列 'where clause',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35311555/

相关文章:

c# - C# 中的空 return 语句位于何处?

c# - 隐藏字段值已更新但未在代码隐藏中显示更新值?

php - 用户注册系统时如何登录

php - Eloquent sortBy() 访问器不排序

php - 使用php和phpexcel将两个表中的mysql数据导出到excel

c# - 如何使用 Entity Framework 将实体加载到私有(private)集合中

asp.net-mvc - AspNet Identity 2.0 电子邮件和用户名重复

c# - 如何使用 EPPlus 库为 Excel 创建多样式单元格

c# - Entity Framework 6 : Unable to load the specified metadata resource

java - Xamarin Android java.lang.InstantiationException : java. lang.Class 没有零参数构造函数