C# Lambda表达式在我的查询中连接另一个表以获得平均值

C# Lambda表达式在我的查询中连接另一个表以获得平均值,c#,linq,C#,Linq,我试图在这个查询中连接一个表(db.Students),通过连接StudentID来获取查询中包含的firstname和lastname。我该怎么做?我提出了大约50个不起作用的查询,其中一个只给出了我想要的一半。这就是我到目前为止所做的工作 var gradeaverages = db.Grades .Where(r => r.StudentID == r.StudentID) .GroupBy(g

我试图在这个查询中连接一个表(db.Students),通过连接StudentID来获取查询中包含的firstname和lastname。我该怎么做?我提出了大约50个不起作用的查询,其中一个只给出了我想要的一半。这就是我到目前为止所做的工作

            var gradeaverages = db.Grades
                .Where(r => r.StudentID == r.StudentID)
                .GroupBy(g => g.StudentID, r => r.Grades)
                .Select(g => new
                {
                    StudentID = g.Key,
                    Rating = g.Average()
                });
        var data = gradeaverages.ToList();
        dataGridView1.DataSource = data;   
它确实有一个外键。以下是限制条件: 约束[FK_成绩学生]外键([StudentID])引用[dbo]。[StudentID])

这是我的桌子:

CREATE TABLE [dbo].[Grades] (
[GradeID]   INT          NOT NULL,
[StudentID] INT          NOT NULL,
[Date]      NCHAR (10)   NULL,
[Grades]    DECIMAL (18) NULL,
PRIMARY KEY CLUSTERED ([GradeID] ASC),
CONSTRAINT [FK_Grades_Students] FOREIGN KEY ([StudentID]) REFERENCES [dbo].[Students] ([StudentID])


CREATE TABLE [dbo].[Students] (
[StudentID]  INT           NOT NULL,
[First Name] NVARCHAR (40) NOT NULL,
[Last Name]  NVARCHAR (40) NOT NULL,
[Phone]      NVARCHAR (24) NULL,
CONSTRAINT [PK_Table] PRIMARY KEY CLUSTERED ([StudentID] ASC)
我在找一个不合适的工作


StudentID FirstName LastName AverageGrade(根据StudentID,我假设)

实际上关于数据库结构的信息不够,但我猜您的查询可能如下所示:

var data = db.Students.Include("Grades")
    .Select(x => new
    {
       StudentId = x.StudentId,
       Rate = x.Grades.Avg(y => y.Mark)
    })
    .ToList();
。其中(r=>r.StudentID==r.StudentID)
是没有意义的,因为您将一些值与自身进行比较

还是像这样

var data = db.Grades
    .GroupBy(x => x.StudentId)
    .Select(x => new
    {
       StudentId = x.Key,
       Rate = x.Avg(y => y.Mark)
    })
    .ToList();

你的db有外键成绩->学生吗?您正在使用EF吗?嗨,欢迎来到Stack Overflow。与目前的情况相比,您能否更具体地说明您希望输出的具体情况?您的表结构是什么样的?请出示您的密码。