使用实体框架进行非规范化

时间:2011-02-05 04:44:05

标签: entity-framework

我最近听到有人建议可以使用Entity Framework来对数据进行非规范化。例如,假设您有一个游戏类型表和一个游戏表。

您的初始EF模型可能会通过game.Genre.Name获得游戏类型的名称。显然,有一种方法可以重新映射,以便您可以通过game.GenreName获取游戏的流派名称。

但是,我找不到这样的例子。我所知道的唯一方法是手动添加一个映射它的抽象层(例如new GameAbstraction() {GenreName = gameEntity.Genre.Name })。

这是EF可以做的事情,还是增加规范化(例如在Genre.Name == 'Sports' or ActionGame when Genre.Name = 'Action'时创建SportsGame)?

2 个答案:

答案 0 :(得分:2)

我已经完成了相当程度的成功,将非规范化表映射到规范化的实体框架,反之亦然。我开始使用实体框架提供的设计器,你可以实际拖放图表周围的属性来构建新的实体......

但是,我认为用于实现这一目标的UI +工具在自动化或易用性方面尚未完全实现。有些东西并没有映射出你期望或想要的方式。如果你计划进行大量的非规范化,你最终会对设计师背后的XML进行大量的手工编辑。这是我在最近的项目中暂时不得不做的事情。

答案 1 :(得分:0)

是的,它被称为实体拆分。 Here's a tutorial.

我同意@Graham,如果你对XML编辑感到不舒服,你不应该尝试。