我在backgroundworker中使用LINQ查询。当我运行程序并执行查询时,它可以正常工作。但是当我手动更改表中的值并再次运行查询时,这会将最后一个结果返回给我,我应该关闭程序并再次运行它以查看更改!
请帮我解决这个问题。
clockEntities objDb = new clockEntities();
private void backgroundWorker2_DoWork(object sender, DoWorkEventArgs e)
{
var inOutList = (from may in objDb.Taradods
where may.Date.Contains("2014/02") && may.BarCodeNo == 8011
select may);
this.Invoke(new MethodInvoker(delegate() {
dataGridView1.DataSource = inOutList.ToList(); }));
}
答案 0 :(得分:0)
您的DataContext过时了。将构造移动到DoWork方法中: 无论如何,DataContext构造非常轻,因此它不会对性能产生太大影响。
private void backgroundWorker2_DoWork(object sender, DoWorkEventArgs e)
{
//==> Move it here clockEntities objDb = new clockEntities();
var inOutList = (from may in objDb.Taradods
where may.Date.Contains("2014/02") && may.BarCodeNo == 8011
select may);
this.Invoke(new MethodInvoker(delegate() {
dataGridView1.DataSource = inOutList.ToList(); }));
}