我正在使用Entity Framework 4构建库存管理系统。
一点背景,我的实体有点像这样(只显示需要的信息)
产品 - > ProductLocations
WarehouseLocation - >有很多ProductLocations
每个ProductLocation
都有一个数量
我要做的就是让你在调用Product.TakeFromLocation(wl为WarehouseLocation,qty为Integer)时,如果它的数量下降到零,它会删除ProductLocation。
然而......产品是一个实体,就像ProductLocation一样,它们意味着持久无知。我正在使用POCO EF模板,进行了一些修改,以便生成IEntities
接口,并使用内存中的版本生成FakeEntities进行测试。这意味着我的实体对Entity Framework一无所知,也不会从任何东西继承或实现任何接口,因此C ontext.DeleteObject()
超出范围。
任何人都遇到了类似的情况,并对如何解决这个问题有任何想法?
我有点认为如果上下文中的SaveChanges()是一个局部方法,我可以扩展它以检查0数量 - 但是它会为所有保存执行此操作,这有点拖累90%以上没有这样做的操作。
答案 0 :(得分:1)
我会在SavingChanges
事件中执行,而不是SaveChanges()
。
至于性能“开销”,我怀疑它介于琐碎和不可测量之间。