说“衍生实体”是指那些不能直接与数据库表映射但仍然存在于“行之间”并且可以使用聚合/排名规则重建的“域对象”。
示例:我有一个表,其中记录有两个dateTimes用于时间段管理。使用复杂但仍然自然的规则,基于对期间联合和其他一些领域的解释,我们将这些记录分组为剧集。那些“剧集”或“聚合记录”在我的域名中是非常受欢迎的对象,所以我正在寻找如何灵活组织代码的方式。
实体框架可以向我提出什么建议?我可以以某种方式在概念模型上声明那些“剧集”吗?或者从ORM工具的角度来看,那些“域对象”总是“又一个查询”?
现在我使用带有linq表达式和“foreach”循环的“ad hoc”类型构建那些 Eisodes (以获取聚合值)。我把这段代码称为“业务规则”,但是在概念层没有涵盖“声明”这个“业务规则”只是“代码”:)
PS将这些剧集放在数据库中会更好但是现在不可能...... PPS实体框架4.1
答案 0 :(得分:1)
考虑这一点的一种方法是,您有一个名为 Episode 的非持久域对象,它聚合了持久化的实体。作为模型一部分的实体(持久化的实体)是基于与时间戳字段相关的逻辑的剧集的“成员”。
一种方法是定义聚合这些模型实体的Episode类。 Episode类不需要知道模型对象的持久性 - 实际上,POCO模板也会从持久化模型对象中删除持久性感知。
将模型对象“分配”到剧集的策略取决于所涉及的逻辑。您可以向Episode类添加静态方法,该方法将模型对象作为参数。然后,该方法可以应用赋值逻辑,实例化新的剧集并在适当时将模型对象分配给它们。