根据条件归档数据
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
我们一直在使用 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