在我的業務線中,我們有產品。這些產品可以由用戶通過添加修改來修改。修改可以做些事情,例如更改產品的價格和更改屬性。這對我來說似乎完全適合裝飾者模式完美。實體框架裝飾模式
現在,設想一個數據庫,其中產品存在於一個表中,而修改存在於另一個表中,數據庫通過實體框架連接到我的應用程序。我將如何獲得產品對象和修改對象來實現相同的接口,以便我可以交替使用它們?
例如,我希望能夠做的事情類型: 給定一個Modification對象,調用.GetNumThings(),然後返回原始對象中事物的數量,加上或減去數字通過修改添加的東西。
這個問題可能源自於EF非常嚴重缺乏(我迄今爲止的所有經驗都是相當直接的LOB Silverlight應用程序),如果是這樣的話,請放心告訴我RTFM。
提前致謝!
編輯: 如果給定一個第三個表,鏈接一個產品以修改(一到多)這也將是不錯的它可以重建裝飾物(我知道這是有可能的方式越界爲EF自動執行)。你會如何推薦去做這件事,代碼將駐留在哪裏?它會成爲EF類的一部分,還是我從數據庫中接收到的每個實體都需要通過某種「構建器」來構建產品及其修改列表中的裝飾對象?
這需要回答兩個實現相同接口的問題。是否有什麼會阻止IProduct接口包含IProduct類型的屬性? – 2010-06-15 19:05:47
@Anony Compton:不,您可以使用數據庫中包含的參考。畢竟,無論如何,這需要存儲產品和裝飾器之間的引用。 – 2010-06-15 21:42:34