c# - 单个查询中来自多个表的多个计数 - EF Core、LINQ
问题描述
我提供了我正在解决的问题的简化版本,基本上,我想在单个查询中对继承相同接口的多个实体进行计数,我给出的示例是我当前的工作解决方案,但它不是在处理 20 多个实体时在生产中非常高效,因为每个计数都执行一个查询。有人对我如何使用 LINQ 查询语法来改进我当前的解决方案有任何建议吗?
public class EntitySummary {
public EntityType EntityType { get; set; }
public int Count { get; set; }
}
public enum EntityType
{
Entity1,
Entity2,
Entity3
}
public interface IDateModified {
public DateTime? DateModified { get; set; }
}
public class Entity1 : IDateModified {
public DateTime? DateModified { get; set; }
}
public class Entity2 : IDateModified {
public DateTime? DateModified { get; set; }
}
public class Entity3 : IDateModified {
public DateTime? DateModified { get; set; }
}
public void Summary(){
var summary = new List<EntitySummary>{
new EntitySummary {
EntityType = EntityType.Entity1,
Count = Context.Entity1.Count(x => x.DateModified < DateTime.Now)
},
new EntitySummary {
EntityType = EntityType.Entity2,
Count = Context.Entity2.Count(x => x.DateModified < DateTime.Now)
},
new EntitySummary {
EntityType = EntityType.Entity3,
Count = Context.Entity3.Count(x => x.DateModified < DateTime.Now)
}
}
}
解决方案
推荐阅读
- gradle - 如何从 AndroidManifest.xml 中删除 minSdkVersion 但仍然能够使用 Make 构建?
- java - SpringJunit4Runner 没有找到测试
- python-3.x - 退出状态 -15
- arrays - Swift - 在字典数组中引用对象
- php - Multi_Curl 具有来自 mysql 列的值
- reactjs - 如何使用外部 api 访问令牌而不将它们暴露给用户?
- java - 每个缓存的 Redis 大小限制
- html - 如何在不裁剪或换行的情况下限制列宽?
- python - 将晶石矩阵转换为具有列名的数组时出现内存错误。该数组输入到训练模型
- c# - CSharpFits:写入 FITS 文件会导致图像错误