2013-02-19 30 views
2

正如我的標題所說,我需要弄清楚如何在彼此之間同步兩個我的Microsoft Lightswitch應用程序。 此外,重要的是一個應用程序在網絡上,另一個應用程序在桌面上創建。同步兩個Lightswitch應用程序

因此,我需要的是從Web服務器拉下數據庫條目並將其放入桌面PC使用的數據庫中。

讓我知道你是否需要更多的信息。

回答

1

正如Yann所說,它不是一個開箱即用的功能,但應該可以在Lightswitch的代碼中完成。

您需要手動編寫代碼以執行實際的同步(通過連接到Web服務器上的數據庫並使用SQL查詢同步數據),但是因爲這無法在客戶端完成(Silverlight doesn'允許使用SQL類),您可以使用'命令表'模式(http://blog.pragmaswitch.com/?p=332)。

基本上,您創建一個新表(例如,SyncRequests)並從客戶端添加一條記錄,然後您可以使用服務器代碼(通過SyncRequests_Inserted事件)執行您的同步代碼。

用於同步數據庫的實際代碼將取決於您想要執行的操作(從Web數據庫覆蓋本地數據庫中的所有數據,合併記錄,僅添加新等)以及一般數據庫結構。

0

您可以在發佈嚮導期間將您的桌面應用程序指向Web服務器上的數據庫。還是他們完全不同的數據庫,完全不同的表?

+0

他們有相同的表,同樣的名字也。 – Hoh 2013-02-22 09:29:41

+0

然後,按照我的建議,在發佈嚮導期間更改連接字符串以指向Web服務器上的數據庫。我沒有嘗試過這個,但它*應該*工作。 – 2013-02-22 13:08:16

+0

謝謝你的建議,但是。我想在主PC上有本地數據庫,並在Web服務器上有可共享數據庫。而我的客戶想要的是每月同步兩個數據庫一次或兩次,以便將來自Web服務器的所有信息都存入本地數據庫。 – Hoh 2013-02-22 13:35:24

0

有兩種方式:

第一種方式 - 複製

  1. 可以更改使用MSSQL數據庫。
  2. 在數據庫上啓用複製。數據庫將在兩個數據庫之間同步。

方式二 - 手動同步

  1. 這兩個數據庫是彼此獨立的。
  2. 不時不時地從服務器進行備份或從桌面進行備份。
  3. 在兩個數據庫上運行數據庫比較應用程序。

  4. 創建一個腳本來同步客戶端數據庫的數據。

  5. 創建腳本以同步服務器的數據庫元數據。

  6. 運行更新腳本來更新服務器的元數據。

  7. 運行更新腳本來更新客戶端的數據。