1

我使用 Visual Studio 2010 并使用实体框架和 SQL Server 2008 R2。我的表上有触发器,当在表中保存一条记录时,另一个表中的另一列发生了变化。是否可以在我的应用程序中更改自动更改的记录。

4

3 回答 3

2

有一个 InsertOnSubmit 事件会触发,如此所述,不确定是否会对您有所帮助..

但是在保存/修改实体时会触发各种事件,但是您必须将“触发”逻辑带入代码端,然后可能会智能地处理各种实体更改..这里有更多内容:保存时如何执行业务逻辑变化

在更深入地查看您的问题的标题之后,您似乎正在尝试从更新的表中获取数据..正如评论所暗示的..实体“上下文”范围之外的任何内容都会有被“重新加载”。现在,如果在您的“更改事件”处理中处理了“加载”代码,那么您可以完成此操作.. 那么为什么不将所有这些逻辑放在您的代码层中呢?对您的 2 个“实体”进行更新,然后一口气保存它们。

于 2012-06-08T21:58:03.803 回答
1

虽然,这不是您想要的答案,但我认为您应该将“触发器”逻辑从数据库移动到应用程序代码。这将解决您的问题,并允许您编写一个单元测试来验证数据是否正确更新。

于 2012-06-09T08:23:52.840 回答
0

我搜索这个问题并找到下面的代码来刷新 EF 中的数据: MyModelEntities.Refresh(System.Data.Objects.RefreshMode.StoreWins, TbMyRecord);

于 2012-07-04T10:31:25.327 回答