2012-08-16 83 views
1

如果我的Microsoft SQL Server Management Studio中更改數據我的應用程序運行時,LINQ不會得到新的數據,即使我運行爲什麼不更新DataContext與外部數據庫更改?

myContext.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues) 

,以獲得新的變化,唯一的方法(我已經發現到目前爲止......)是重新創建數據上下文。

myContext.Dispose(); 
myContext = new MyDataContext(); 

我必須是盲人,這必須是真的很明顯,但我已經浪費了這個足夠的時間來讓自己張貼這個愚蠢的問題...... -_-'

謝謝!

編輯

當我從SQL加載數據:

myBindingSource.DataSource = myContext.myTable.Where(o => o.id != 0).OrderBy(o => o.name); 
+0

你是如何通過Linq查詢或其他方式從數據庫中獲取數據的?你可以發佈一個查詢的例子嗎?此外,SQL Server Profiler在執行刷新時顯示的內容不重新創建上下文是什麼? – Dai 2012-08-16 17:36:23

+0

編輯添加加載。你如何使用SQL Server Profiler? – Pluc 2012-08-16 17:39:54

+0

一旦你從上下文中提取數據,它就會被設置。您所需要的只是在數據更改爲綁定「myBindingSource.DataSource」 – Apurav 2012-08-16 17:58:18

回答

0

我的概念是有缺陷的和的DbContext不應該再保持那麼你需要執行查詢。也就是說,如果我想刷新我的數據,我應該只是得到一個新的DbContext實例並重新填充我的數據源。

-1

讓connectionstrin是:

string pp = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\AdventureWorks2012_Data.mdf;Integrated Security=True;Connect Timeout=30"; 

和更新任務是下面提到:

public async Task callupdate() 
     { 
      try 
      { 
       int ppp = Convert.ToInt32(textBox1ID.Text); 
       DataClasses1DataContext dc = new DataClasses1DataContext(pp); 

       Person person = dc.Persons.Single(c => c.BusinessEntityID == ppp); 
       person.PersonType = Convert.ToString(PersonTypecomboBox1.SelectedItem); 
       person.PersonType = Convert.ToString(PersonTypecomboBox1.SelectedItem); 
       if (NameStylecomboBox1.SelectedText == "False") 
        person.NameStyle = false; 
       else 
        person.NameStyle = true; 
       person.Title = Convert.ToString(TitlecomboBox1.SelectedItem); 
       person.FirstName = FirstNametextBox2.Text; 
       person.MiddleName = MiddleNametextBox3.Text; 
       person.LastName = LastNametextBox4.Text; 
       person.Suffix = SuffixtextBox5.Text; 
       person.EmailPromotion = Convert.ToInt32(EmailPromotiontextBox6.Text); 
       person.ModifiedDate = DateTime.Today; 
       dc.SubmitChanges(); 
      } 
      catch(Exception exp) 
       { 

       } 

     } 

,而不是DataClasses1DataContext dc = new DataClasses1DataContext();

DataClasses1DataContext dc = new DataClasses1DataContext(pp);

VBY調用SubmitChanges()更新數據是我們班的對象實際上是寫在實際的數據庫中

+0

這是怎麼回事這個問題? – 2014-12-15 07:56:55