Linq to sql Linq to SQL:如何在保存期间刷新触发器插入的DbContext中的表

Linq to sql Linq to SQL:如何在保存期间刷新触发器插入的DbContext中的表,linq-to-sql,triggers,Linq To Sql,Triggers,我有一个问题实体,当一个新问题被创建并保存在数据库中时,它会触发一个触发器以插入到一个status_history表中。此状态\u历史记录有一个FK on Issue.Issue\u id。在我的UI中,有一个数据网格显示此状态\u历史记录。我试图修复的错误是,当保存新问题时,会触发触发器,但不会刷新状态历史记录,因此触发器插入的新记录不会显示在数据网格中。应用程序正在使用LINQtoSQL。是否有方法刷新status_history实体和issue.status_history?我尝试调用Re

我有一个问题实体,当一个新问题被创建并保存在数据库中时,它会触发一个触发器以插入到一个status_history表中。此状态\u历史记录有一个FK on Issue.Issue\u id。在我的UI中,有一个数据网格显示此状态\u历史记录。我试图修复的错误是,当保存新问题时,会触发触发器,但不会刷新状态历史记录,因此触发器插入的新记录不会显示在数据网格中。应用程序正在使用LINQtoSQL。是否有方法刷新status_history实体和issue.status_history?我尝试调用Refresh(RefreshMode.OverwriteCurrentValues,newIssue),但status_历史记录的计数仍然为0,status_历史记录实体的计数仍然与保存前相同。

否,不是直接调用

DataContext
已经“过时”,因为通过触发器进行的更新绕过了
DataContext
/Linq-2-sql的更改跟踪机制


因此,您需要在更新后创建一个新的
datacontext
。这将重新检索新数据并再次显示。

刷新newIssue对象没有帮助,它只会更新查询的对象和该对象的值

但是你可以刷新表格。 假设您有一个名为mDB的数据上下文实例,您的表名为Issue:

mDB.Refresh(RefreshMode.OverwriteCurrentValues,mDB.Issues