我们一直在使用Entity框架代码第一种方法和Fluent Api,并且有这个要求,一个具有多个导航属性和可能有多个条目的实体。
此实体反映流程的数据,而字段捕获实体是否在流程中处于活动状态。我已经为此提供了一个例子。
public class ProcessEntity
{
//Other properties and Navigation properties
public bool IsInProcess { get; set; }
}
我一直在尝试做的是,让另一个表可以是映射表或只包含其IsInProcess属性设置为true的ProcessEntity项的东西,即,此表提供活动的ProcessEntities在这个过程中。
这种隔离背后的整个想法和想法是,许多查询和报告仅在仍在进行中的项目上生成,并且每次使用Where子句查询整个表时都会成为性能瓶颈。如果我错了,请纠正我。 我想过有一个映射表,但必须根据条件手动添加和删除条目。
此要求是否有其他解决方案或替代设计理念?
答案 0 :(得分:1)
考虑使用索引。 你的第二个表是索引的作用。 让数据库完成它的工作。
鉴于布尔值不是一个很好的区分因素,日期或类似索引的一部分也可能有用。
例如How to create index in Entity Framework 6.2 with code first