c# - 为什么我可以引用 select new 中不在 select from 语句中的表
问题描述
我有一个使用实体框架查询的 SQL Server 数据库。
我想获取各种表的行数,但也要尽量减少到数据库的往返行程。所以我使用“select new”返回一个包含各种计数的匿名类型。
我不明白为什么当“in db.Submissions”表明结果仅限于单个表时,我可以在语句中查询多个表。
如果有的话,这样做有什么影响?
var counts = (from s in db.Submissions
select new
{
s1 = db.Submissions.Count(i => i.SubmittedDateTime >= yesterday),
s2 = db.Submissions.Count(i => i.SubmittedDateTime >= lastweek),
s3 = db.Submissions.Count(i => i.SubmittedDateTime >= lastfortnight),
s4 = db.Submissions.Count(),
cr1 = db.ContactRequests.Count(i => i.ContactRequestDateTime >= yesterday),
cr2 = db.ContactRequests.Count(i => i.ContactRequestDateTime >= lastweek),
cr3 = db.ContactRequests.Count(i => i.ContactRequestDateTime >= lastfortnight),
cr4 = db.ContactRequests.Count(),
l1 = db.Log.Count(i => i.LogDateTime >= yesterday),
l2 = db.Log.Count(i => i.LogDateTime >= lastweek),
l3 = db.Log.Count(i => i.LogDateTime >= lastfortnight),
l4 = db.Log.Count(),
}).FirstOrDefault();
使用正确的值成功执行,例如:{ s1 = 0, s2 = 6, s3 = 6, s4 = 6, cr1 = 0, cr2 = 1, cr3 = 1, cr4 = 1, l1 = 0, l2 = 0 .. .}
解决方案
推荐阅读
- r - ggplot2中的柱形图使用分类变量作为填充
- r - 创建一个逻辑变量来标识组中两个日期时间之间的最小差异的行
- jquery - jquery 循环遍历元素以动态添加 ids .?
- javascript - 如何使用滚动事件无限更改幻灯片。它是否与设置间隔功能一起使用,但如何滚动功能?
- javascript - React/JS 过滤器的问题
- r - 预测“tslm”接收未使用的参数错误
- mysql - 如何解决这个 pom.xml 问题?(与数据库的连接)
- r - R将字符串中的元素更改为不同类型的最新元素
- javascript - 24 次迭代 javascript 循环仅显示 10 个画布
- nunit - 是否可以在执行开始之前在运行时重新排序 NUnit 测试?