【发布时间】:2011-08-14 22:58:24
【问题描述】:
我问是为了了解这种情况下的最佳做法是什么。我正在使用 EF4。
我有两个实体,分别称为“Note”和“Product”。我有另一个名为“Stock”的实体。
Note 有很多产品,每个产品只能在一个 Note 中(产品必须有一个 Note)。
每当我插入、删除或更新产品时,我都必须根据产品附带的注释更新相关的 Stock 实体。
在 InsertProduct() 方法中,我插入 Product,然后更新相关 Stock。万一产品违反了库存规则 - 我得到一个例外,操作将按原样中止。
在 InsertNote() 方法中,我无法插入注释,因为这样的东西会自动插入附加的产品,并且对于每个产品,我需要更新 Stock 并验证 Stock 规则(如上所述)。因此,在插入注释之前,我会遍历所有产品并调用 InsertProduct()。之后我插入注释。
直到这里有两个问题:
事情应该是这样的吗?是否需要手动插入 每个产品在我插入注释之前?这如何解决 fact 产品必须附加到存在注释(在 插入产品,注释没有插入)?
我应该把 InsertNote() 和 InsertProduct() 方法放在哪里? 它们中的每一个都处理 Note、Product 和 Stock 实体。我应该创建类似 NoteService 和 ProductService 类的东西,还是应该将它们放在一个大服务类中?
在我问here 的问题中,我得到了一个描述如何创建像 OnBeforeInsert() 这样的事件的答案。这个实现是否适合我在插入产品后更新库存的需要?
【问题讨论】:
标签: c# .net entity-framework design-patterns entity-framework-4