根据条件归档数据

Archive data based on conditions

我们一直在使用 Entity framework-code first 方法和 Fluent Api,并且有这样的要求,一个具有多个导航属性的实体和大量条目的可能性。

这个实体反映了一个进程的数据,一个字段捕获了实体在进程中是否活跃。我为此提供了一个示例。

    public class ProcessEntity
    {
        //Other properties and Navigation properties

        public bool IsInProcess { get; set; }
    }

我一直在尝试做的是,让另一个 table 可以是映射 table 或仅包含设置了 IsInProcess 属性 的 ProcessEntity 项目的东西为真,即,此 table 提供流程中处于活动状态的 ProcessEntities。

这种隔离背后的整个想法和想法是,仅针对仍在处理中的项目生成大量查询和报告,并且每次使用 Where 子句查询整个 table一个性能瓶颈。如果我错了,请纠正我。 我想有一个映射 table 但必须根据条件手动添加和删除条目。

这个需求有没有其他的解决方案或者替代设计思路?

考虑使用索引。 您的第二个 table 是索引的作用。 让数据库完成它的工作。

鉴于布尔值不是很好的区分因素,作为索引的一部分的日期或类似值也可能有用。

例如How to create index in Entity Framework 6.2 with code first