2015-09-02 31 views
-1

在我的新c#項目中,我想實現工作單元模式。瞭解工作單元模式

根據Fowler一個單位如果工作跟蹤對相應對象(新創建,骯髒和刪除的對象)的所有更改。像這樣的其他實現jgauffin - ado.net the right way使用工作單元「恰好」進行事務管理。 因此,Fowler之後的一個工作單元在應用程序的開始時被初始化並保存在內存中。 「其他」工作單位僅用於交易,並在事後處理。

爲什麼這些方法如此不同? 是否有一個去執行?

提前THX

+0

這是一個模式,可以根據需要根據項目要求進行定製。 – vendettamit

+0

Downvoters,請評論你爲什麼要掩蓋這個問題。雖然它可能更適合[程序員](http://programmers.stackexchange.com),因爲它不直接包含任何代碼,但它仍然是一個關於編碼技術的有效問題,並通過研究表明了努力。人們,尤其是像這裏這樣的新成員,可能不會意識到這個其他網站,並將他們的問題留在糟糕的形狀中,因爲這不會改善情況;) –

+0

Thx。事實上,我想知道,爲什麼我的問題是downvoted(我仍然認爲這是一個有效的問題)。我不知道有程序員堆棧交換。 – OlBoozeroony

回答

3

工作的福勒後的單位是在應用程序的啓動初始化,並保存在內存中

不,這不是:

[ Folwer]工作單位會跟蹤您在執行業務交易期間所做的所有工作,這可能會影響數據庫。

類似於「爲此訂單創建發票和發票行」是使用一個工作單位實例完成的。這個UoW在提交後處理。

+0

Thx爲您的答案,但我不認爲你是對的。您正在描述「其他」工作單元的行爲。福勒的實現使用對象的註冊方法(在工作單元中)。對象使用這些方法讓工作單元知道它們是否被更改,刪除或新創建。所以,只要你在處理這些對象,就有一個當前的記憶單位。儘管如此,所有「更新」的uow實現都不使用這些註冊方法。有理由嗎? – OlBoozeroony

+0

@OlBoozeroony不,這是你的解釋,這是錯誤的。 Fowler提出的UoW具有這些方法來添加/更新/刪除屬於一個事務中的記錄,而不是一個應用程序。 – CodeCaster

+0

Thx討論。我們正在接近我的理解問題...... Fowler在對象屬性設置器中使用了register-methods。所以在一個對象被改變之後,它在uow中被標記爲髒。如果我不想在每次數據更改後執行交易,我需要在內存中負責任的uow,不是嗎?在EF項目中,數據集可以完成這項工作,但是如果沒有EF Fowler建議uow跟蹤更改的數據。 – OlBoozeroony