1

如果我在应用程序运行时更改 Microsoft SQL Server Management Studio 中的数据,LINQ 将不会获取新数据,即使我运行

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);
4

2 回答 2

1

我的概念是有缺陷的,DbContext 的保存时间不应超过您需要执行的查询。也就是说,如果我想刷新我的数据,我应该只获取一个新的 DbContext 实例并重新填充我的数据源。

于 2012-10-15T13:53:44.530 回答
-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);

v通过调用SubmitChanges()我们类的对象的更新数据实际上正在写入实际的数据库中

于 2014-12-03T08:46:00.063 回答