2011-02-05 78 views
3

我最近听到有人提出可以使用Entity Framework来使数据非规范化。例如,假设您有一张游戏类型表和一张游戏表。使用实体框架非规范化

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

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

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

回答

2

我已经用非常合理的成功度完成了这项工作,将非规范化表映射到规范化实体框架,反之亦然。我开始通过使用设计师提供的实体框架,你可以实际拖放属性周围的图来建立新的实体...

但是,我认为这样做的UI +工具isn在自动化或易用性方面还没有那么完美。有些东西不符合你的期望或想要的方式。如果您打算进行大量的非规范化操作,您将最终在设计器背后进行大量的XML编辑手动编辑。这是我在最近的项目中不得不做的一段时间。

+0

同意你,我在这个问题的未来。看起来,代码类结构EF和规范化数据库并不符合预期。 – 1c1cle 2014-01-13 16:14:50

0

是的,这就是所谓的实体分裂。 Here's a tutorial.

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