【发布时间】:2010-06-15 18:29:01
【问题描述】:
在我的业务范围内,我们有产品。用户可以通过向它们添加修改来修改这些产品。修改可以做一些事情,例如改变产品的价格和属性。在我看来,这似乎完全符合装饰者模式。
现在,设想一个数据库,其中产品存在于一个表中,修改存在于另一个表中,并且该数据库通过实体框架连接到我的应用程序。如何让 Product 对象和 Modification 对象实现相同的接口,以便可以互换使用它们?
例如,我希望能够做的事情: 给定一个 Modification 对象,调用 .GetNumThings(),它将返回原始对象中的事物数量,加上或减去修改添加的事物的数量。
这个问题可能源于严重缺乏对 EF 本质的了解(到目前为止,我的所有经验都是非常简单的 LOB Silverlight 应用程序),如果是这种情况,请随时告诉我RTFM。
提前致谢!
编辑: 如果给定第三个表,将产品链接到修改(一对多)它可以重建装饰对象(我意识到这可能超出 EF 自动执行的范围),那也会很好。你会如何建议这样做,该代码将驻留在哪里?它是 EF 类的一部分,还是我从数据库收到的每个实体都需要通过某种“构建器”来从 Product 及其修改列表构造一个装饰对象?
【问题讨论】:
标签: c# entity-framework interface decorator