2010-10-08 122 views
2

我建立了一個庫存管理系統,目前,使用實體框架4.實體框架;面向對象刪除

一點背景,我的實體去有點像這樣(只顯示所需信息)

產品 - > ProductLocations

WarehouseLocation - >有許多ProductLocations

每個ProductLocation有數量

我試圖做的是h這樣當您調用Product.TakeFromLocation(wl爲WarehouseLocation,qty爲Integer)時,它將刪除ProductLocation,如果其數量降至零。

但是...產品是一個實體,和ProductLocation一樣,它們意味着持久無知。我使用POCO EF模板,進行了一些修改,以便生成一個IEntities接口,並使用內存中的版本生成FakeEntities以進行測試。這意味着我的實體不知道任何有關實體框架的知識,也不會從任何東西繼承或實現任何接口,因此C ontext.DeleteObject()超出範圍。

任何人都遇到過類似的情況,並有任何想法如何避免這種情況?

我覺得如果上下文中的SaveChanges()是一個局部方法,我可以擴展它來檢查0數量 - 但是接下來它會爲所有的保存執行此操作,這是一個拖拽90%以上的操作沒有這樣做。

回答

1

我會在SavingChanges事件中做,而不是SaveChanges()

至於性能「開銷」,我懷疑它是介於平凡和不可測量之間。