代码之家  ›  专栏  ›  技术社区  ›  Ahmad

在使用ms sql server数据库的asp.net c#mvc codefirst approach应用程序的数据库表中添加或更新记录时,如何获得通知?

  •  -1
  • Ahmad  · 技术社区  · 6 年前

     {
        public int Id { get; set; }
        public string title { get; set; }
        public string location { get; set; }
        public DateTime Expected_Date_of_Start { get; set; }
        public DateTime Expected_Date_of_End { get; set; }
     }
    

    我可以插入,更新,删除实体和所有功能正常工作。 现在我想在有人插入新记录或更新现有记录时得到通知。

    为了澄清这一点,我想以某种方式建立一个通知系统,就像facebook或twitter在发生任何变化时通知用户的方式一样。

    1 回复  |  直到 6 年前
        1
  •  0
  •   UspenskiyAN    6 年前

    首先需要捕获表修改事件。在您写EF CodeFirst时,我建议您重写SaveChanges。像这样:

    Public Overrides Function SaveChanges() As Integer
       For Each changedEntity In Me.ChangeTracker.Entries
           Select Case If(changedEntity.Entity.GetType.Namespace = "System.Data.Entity.DynamicProxies", changedEntity.Entity.GetType.BaseType, changedEntity.Entity.GetType)
               Case GetType(YourEntityType)
                   If changedEntity.State = EntityState.Added OrElse changedEntity.State = EntityState.Modified OrElse changedEntity.State = EntityState.Deleted Then
                      NotifyUser(changedEntity)
                   End If
           End Select
       Next 
    End Function