刚刚接触asp.net core中的EF,为两个表设计模型,怎么在表1中设置一个计算表2中与当前行相关行数的字段,以及与当前行相关的那些行某个字段的数值汇总字段?

wjjdnajj 2022-12-07 15:46:55

 

 

学生
学生编号姓名
001张三
002李四
成绩
编号学生编号科目成绩 
1001语文90
2002语文B
3001数学95
4003化学C
5001体育85

我想得到的结果是  一张表比如其中的一行是  001,张三,3(这个是成绩表相关的行数有三行),270(这个是总分)

 

这两个EF模板要怎么设计呢?

 

...全文
675 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjjdnajj 2023-02-21
  • 打赏
  • 举报
回复

用linq表达可以写成这样,把其中storeins和storeouts两个表名更换即可:
from storeIns in db.storeIns
select new {
storeIns.InStoreId,
all = (int?)
(from storeOuts in db.storeOuts
where
storeOuts.InId == storeIns.InStoreId
select new {
storeOuts.OutQuantity
}).Sum(p => p.OutQuantity),
counts =
(from storeOuts in db.storeOuts
where
storeOuts.InId == storeIns.InStoreId
select new {
storeOuts.OutQuantity
}).Count(p => p.OutQuantity != null)
}

理想&天空 2022-12-21
  • 打赏
  • 举报
回复

SQL语句可以直接查询结果

wjjdnajj 2022-12-07
  • 打赏
  • 举报
回复

用sql语句很容易就可以达到要求得到一个结果,比如:select * , count(select * from b) as 成绩行数,(select sum(b.result) where b.studentsid=a.studnetid) from students a,studentsResult b

wjjdnajj 2022-12-07
  • 打赏
  • 举报
回复

现在这
现在这两个表的模型我设计成这样,但是肯定是达不到要求
public class Students
{
public int StudentsId { get; set; }
public string? StudentName { get; set;}

public ICollection<StudentsResult> studentsResults { get; set; }
}

public class StudentsResult
{
public int Id { get; set; }
public string? Course { get; set; }
public int Result { get; set; }

public Students students { get; set; }

}

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧