C# 实体框架5在运行时记录数据库更改

C# 实体框架5在运行时记录数据库更改,c#,.net,entity-framework,linq-to-entities,C#,.net,Entity Framework,Linq To Entities,在ASP.NET 4.5 C#Entity Framework 5 Code First项目中,我希望在运行时记录数据库中所做的更改(记录必须在ASP.NET应用程序中完成,而不是在数据库中完成)。以前,SQL语句是由代码构建的,这些语句只是记录下来。现在使用EF,对象通过linq检索到实体,并进行修改和修改 db.SaveChanges(); 正在呼叫。我的第一个想法是检索EF发送给DB的实际SQL语句——然而,这似乎相当复杂。我已经找到了许多在调试期间显示SQL的“解决方案”,但代码在运行

在ASP.NET 4.5 C#Entity Framework 5 Code First项目中,我希望在运行时记录数据库中所做的更改(记录必须在ASP.NET应用程序中完成,而不是在数据库中完成)。以前,SQL语句是由代码构建的,这些语句只是记录下来。现在使用EF,对象通过linq检索到实体,并进行修改和修改

db.SaveChanges();
正在呼叫。我的第一个想法是检索EF发送给DB的实际SQL语句——然而,这似乎相当复杂。我已经找到了许多在调试期间显示SQL的“解决方案”,但代码在运行时检索SQL的方法并不简单


因此,我正在寻找任何能够记录所做更改的解决方案(要么将SQL发送到DB[首选],要么对对象所做更改的其他文本表示形式),这不需要包含许多复杂的调试库。

我还没有在EF 4.5上测试过这一点,因此可能需要对其进行一些调整,但我发现出于调试目的,本文底部编写了扩展方法:


提供实体的正确输出。SaveChanges()调用。它不需要任何外部库,而且由于它是作为扩展方法编写的,因此不会阻塞您的代码。

您应该尝试FrameLog


虽然没有明确说明,但它支持实体框架5,不幸的是,它不适用于EF5和DBContext。