2014-03-30 56 views
1

我在使用Linq to SQL在WP8中更新項目時遇到問題。當我運行代碼時,對象在通過應用程序時得到更新。但是,只要我離開應用程序,更新就會丟失。.SubmitChanges()在LINQ to SQL中不起作用

看來.SubmitChanges()不起作用。可能是什麼原因?

Public Sub AdjustTile(ByVal thisTile As TileObject, ByVal info As Integer) 

     Dim query = From row As TileObject In tileDb.TileTable 
        Where row.id = thisTile.id 
        Select row 

     For Each row As TileObject In query 
       row.ChoosenWide = info 
     Next 

     tileDb.SubmitChanges() 

End sub 

功能InsertOnSubmit和DeleteOnSubmit做工精細...

+0

它有可能是你編碼錯誤的dbcontext obj。 – alsafoo

+0

無論如何你不應該使用持久化的DataContext。當然,你不應該從手機應用程序訪問數據庫,因爲這提供了零安全性。任何人都可以連接到您的數據庫並進行修改。 – usr

+0

@alsafoo:如果這是真的,那麼InserOnSubmit如何工作? 這個應用程序使用本地數據庫,只會被用戶使用。另外,它只包含簡單的設置,比如選擇的tilestyle是什麼。 如果我添加一個新的數據上下文,如 使用db as新的TileDataContext(「Data Source = isostore:/Tiles.sdf」) – Misja

回答

0

好吧,我想通了,我的新手的錯誤。事實證明,我忘了補充:

NotifyPropertyChanging( 「ChoosenWide」)和NotifyPropertyChanged( 「ChoosenWide」)

http://code.msdn.microsoft.com/wpapps/Local-Database-Sample-57b1614c

感謝alsafoo & USR對您有所幫助。

Private _ChoosenWide As Integer 
    <Column()> 
    Public Property ChoosenWide() As Integer 
     Get 
      Return _ChoosenWide 
     End Get 
     Set(ByVal value As Integer) 
      If _ChoosenWide <> value Then 
       NotifyPropertyChanging("ChoosenWide") 
       _ChoosenWide = value 
       NotifyPropertyChanged("ChoosenWide") 
      End If 
     End Set 
    End Property 
相關問題