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



在 ASP.NET 4.5 C# 实体框架 5 代码 第一个项目中,我想在运行时记录数据库中所做的更改(日志记录必须在 asp.net 应用程序中完成,而不是在数据库中完成)。以前,SQL 语句是由代码构建的,这些语句只是记录下来的。现在使用 EF,通过 linq 检索对象到实体、修改和

db.SaveChanges();

正在被召唤。我的第一个想法是检索 EF 发送到数据库的实际 SQL 语句 - 但是,这似乎相当复杂。我找到了许多在调试期间显示 SQL 的"解决方案",但没有简单的方法让代码在运行时检索它。

所以我正在寻找任何可以记录所做的更改的解决方案(发送到数据库的 SQL [首选],或者对对象所做的更改的其他形式的文本表示),并且不需要包含许多复杂的调试库。

你应该试试 FrameLog

https://bitbucket.org/MartinEden/framelog/wiki/Home

它没有明确说明,但它支持实体框架 5

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

http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/2a50ffd2-ed73-411d-82bc-c9c564623cb4/

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

最新更新