6

我們一直在密切關注使用Breezejs在SPA和客戶端之間提供數據上下文的SPA。這些功能在客戶端上看起來很棒,但是我們希望在服務器上使用Repository模式,並且不必從EFContextProvider繼承,這會導致IoC出現問題,並可能會導致單元測試/模擬,從而得到良好的問題分離。我們一直在關注Pluralsight上的John Papa的Code Camper樣本,該樣本最初使用沒有Breeze的Respository/UoW模式,然後讓我們看看包含Breeze的Hot Towel模板。breezejs存儲庫

有誰知道Breeze如何被抽象爲一個Repository,它保持DbContext乾淨地(如果使用實體框架)封裝。此外,如果您不使用實體框架並且更喜歡使用另一個ORM(如nHibernate)會發生什麼情況。

回答

3

感謝張貼在這裏,因爲我相信其他人會問這個:)

如果你不使用EF那麼你贏了;噸獲取元數據自動創造,微風提供。然而,你當然可以將EF上下文抽象爲Repo,並且仍然可以獲得好處。

Breeze/Knockout ASP.NET SPA模板顯示存儲庫已分解。我相信某個地方有一個UoW的樣本 - 它從那裏逃脫了。我已經要求微風人指出一個答案。

如果您使用nHibernate,則不會有自動元數據 - 但這是Breeze可以看到的一項很好的功能請求。

+0

好的答案,約翰。我們正在努力使服務器上的* any * CLR模型的元數據生成變得更加容易。應該很快就能描述它......就像在一兩週內。 – Ward 2013-03-20 17:59:49

+0

我已經在我的backlog中添加了一個「UoW/Repository和模型在單獨項目中」的簡單示例。爲了快速獲得它,它將使用EF ...因爲重點在於關注的分離,而不是數據訪問技術本身。一旦我們演示(其他地方)如何爲任何模型創建元數據,讀者應該能夠隨意更換EF。 – Ward 2013-03-20 18:10:26

+0

我強烈推薦Scott Allen在Repository和UOW中的視頻[Pluralsight Design Patterns course](http:// pluralsight。 com/training/courses/TableOfContents?courseName = patterns-library)...也許是我見過的這些模式中最清晰,沒有行話的說明。 – Ward 2013-03-20 18:14:06