【问题标题】:Does SaveChangesAsync() wait for triggers to be executedSaveChangesAsync() 是否等待触发器执行
【发布时间】:2018-03-21 16:36:00
【问题描述】:

例如,如果在表的行插入上定义了触发器,
await context.SaveChangesAsync(); 会在返回状态条目数之前等待所有触发器完全执行吗?

【问题讨论】:

  • 据我所知,触发器是操作的一部分,因此只有在触发器完成后才会返回语句。那是 SQL Server,与 EF 无关。
  • 好的。我只是没有在微软找到任何官方声明。

标签: sql-server entity-framework triggers entity-framework-core


【解决方案1】:

看起来触发器生成的任何结果都包含在返回给您的应用程序的响应中。我正在阅读这意味着(如 cmets 所示)这是操作的一部分:查询运行、触发器触发、返回到您的应用程序。所以是的触发器在从等待恢复之前执行。

当触发器触发时,结果会返回给调用应用程序,就像存储过程一样。为防止由于触发器触发而将结果返回给应用程序,请不要在触发器中包含返回结果的 SELECT 语句或执行变量赋值的语句。触发器包括返回结果给用户的 SELECT 语句或执行变量赋值的语句,需要特殊处理;这些返回的结果必须写入每个允许修改触发器表的应用程序。如果必须在触发器中进行变量赋值,请在触发器开始处使用 SET NOCOUNT 语句以防止返回任何结果集。

https://docs.microsoft.com/en-us/sql/t-sql/statements/create-trigger-transact-sql

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-26
    • 2021-12-21
    • 2021-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多