我試圖讓我的頭如何在MVVM(WP7)應用程序中使用Linq2Sql。我想我理解MVVM的基礎知識,我用這種模式編寫了一些簡單的可測試應用程序,但我不確定應該如何將它與L2S結合起來。MVVM Linq2Sql和DataContext
我不明白一些事情。我如何管理DataContext?我是否每個應用都有一個(我將如何跟蹤對實體的更改並將它們傳播到數據庫)?我可以直接綁定到生成的模型L2S類嗎?如何跟蹤對數據庫所做的更改?或者我應該使用存儲庫模式,哪些事件回調?另一件事,讓虛擬機很容易測試,我使用一個系統的依賴注入和服務的應用程序的一些系統。典型的例子是從互聯網上下載的服務 - 使它可測試,我製作和接口,以及兩個實現它的類 - 一個用於生產,一個用於測試,返回虛擬數據。我的問題是,我應該這樣做的數據庫訪問嗎?假設所有的L2S查詢都只在這個服務中完成,那麼應用程序的其餘部分完全不受L2S的影響。或者是沒有意義的,我應該只需要一個全局的DataContext對象/單例並從任何地方訪問它?
正如你所看到的,我有很多問題:)我很想聽聽你的意見
有人可能糾正我,如果我錯了,但我認爲你也應該在實體上使用MVVM模型。我認爲不直接將數據庫掛接到UI中是個好主意,但使用ViewModelWrappers。 +1對於一個好問題,我也開始使用MVVM,並且我也發現它對DataContext也感到困惑。順便說一句。我根本不確定是否支持Windows Phone(有一個,但還沒有研究過開發:)但是您是否也有LinqToEntities,因爲LinqToEntities看起來比Linq2Sql更有前途。 – Silvermind 2012-03-18 22:45:10
Linq2Sql在WP7上可用(windows phone實際上是我的目標平臺),我不知道LinqToEntities,我從來沒有聽說過它,thx的提示。 我總是將用戶虛擬機作爲包裝,但有時代替重複模型的所有屬性(並跟蹤這些屬性的更改),我將底層模型對象設置爲公共只讀,以便視圖可以直接綁定到它。但仍然存在控制整個集合(ObservableCollection)的問題 - 您無法綁定到表。但是,你如何向你的ObservableCollections傳播增加/刪除? – 2012-03-19 19:09:43