2014-01-06 64 views
2

我在EF中使用继承,感觉它引发的问题多于帮助,特别是将表聚合绑定到数据网格。我给出了一部分模型的屏幕。我想要做的是将FREQUENCY绑定到数据网格,并使网格字段基于FREQ_POOL(这是一个基类)的类型。例如,如果我想要一个POOL_IA数据网格,那么它将具有这些字段以及FREQUENCY中的几个字段。我使用继承是因为它是从OO的角度出发的。另一种方法是只有很多0..1的关系表明FREQ_POOL有一个扩展的能力,但是我没有任何限制,说FREQ_POOL只能是一种类型。什么是更好的设计来实现这一点,并使数据绑定更容易?感谢您的任何指导。EF-替代继承

enter image description here

+0

在那条路上,我个人结束了很多0/1关系而不是继承。我从未困扰过试图在数据库约束级别强制执行“只有一种类型”,除了在父表上有一列指明它代表什么,因此代码有一种知道要检索哪个子实体的方法。当然,表现要比继承好得多。 – AaronLS

+0

非常感谢。这很有道理。我希望在EF中使用继承更容易。 –

回答

0

一种方法可以创建一个数据网格从FREQ_POOL获取数据,然后把所有的POOL_IA变量(或使用反射派生类的所有属性)FREQUENCY和。

如果您真的不需要在绑定数据网格时使用对象并且可以使用DataSet,那么另一种方法可能是通过Context.Entry方法即时获取所有属性和条目的值,并将其放入DataSet中动态。

+0

这是有道理的。但是,我担心新的行创建过程会很复杂,因为为了创建新行,我必须手动执行所有操作(如果是这种情况,这很好)。 –

+0

这就是机会成本:) – kkocabiyik