C# Lambda表达式在我的查询中连接另一个表以获得平均值
我试图在这个查询中连接一个表(db.Students),通过连接StudentID来获取查询中包含的firstname和lastname。我该怎么做?我提出了大约50个不起作用的查询,其中一个只给出了我想要的一半。这就是我到目前为止所做的工作C# Lambda表达式在我的查询中连接另一个表以获得平均值,c#,linq,C#,Linq,我试图在这个查询中连接一个表(db.Students),通过连接StudentID来获取查询中包含的firstname和lastname。我该怎么做?我提出了大约50个不起作用的查询,其中一个只给出了我想要的一半。这就是我到目前为止所做的工作 var gradeaverages = db.Grades .Where(r => r.StudentID == r.StudentID) .GroupBy(g
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。与目前的情况相比,您能否更具体地说明您希望输出的具体情况?您的表结构是什么样的?请出示您的密码。