我有一个网站(ASP.NET MVC),用户可以在其中编写/编辑/删除“评论”。 这样做需要启动数据库触发器以更新系统上的一些全局统计信息。
所以评论是主表(ReviewId - identity),另一个是元数据。
我有一个执行计算的存储过程,每当创建/编辑/删除评论时都需要调用它。
目前,我有一个触发器,它在所有表(4个相同的触发器)上调用SP。但这导致存储过程可能需要执行一次才能执行4次。
我不能只将它放在Review上,因为如果用户编辑审阅的元数据,则不会触及Review表,因此触发器不会触发。
我需要一种说法“观看所有这些表的活动,创建/编辑/删除记录时,启动此程序一次。”
任何提示/建议/想法?
仅供参考 - 如果重要的话,我正在使用Entity Framework 4进行CRUD操作。
答案 0 :(得分:1)
在3个MetaDataX表上删除触发器。保存元数据记录后,确实在Review表中更改了某些内容(“最后编辑”时间将是一个很好的候选者)。
您可能希望编写一些代理方法来在Review map中实现上述逻辑来操作元数据对象(并且不要直接使用MetaDataX映射对象)。
答案 1 :(得分:0)
摆脱实体框架和触发器。创建一个更新四个表的存储过程,并从您的网页中调用它。