如何获取Context.SaveChanges()生成的sql查询;命令。我需要这个,因为用户可以选择创建数据分发脚本,而不是插入本地库。
感谢。
更新:
我正在使用带有WCF数据服务的实体框架。
答案 0 :(得分:1)
如果您使用的是EF6,则可以使用DbContext.Database.Log
。例如,使用以下内容,SQL将沿着一些性能数据输出到控制台:
Context.Database.Log = Console.WriteLine;
如果您想阻止DbContext.SaveChanges
实际保存更改,您也可以执行拦截。
您可以在this MSDN article中找到有关记录和拦截的信息。
答案 1 :(得分:0)
我的解决方案是:不要使用仍然不完整的Wcf数据服务,如果您需要安全性和可靠性,请使用Wcf服务,这样您就可以拥有自己的实体框架。 Wcf数据服务还不够成熟。
对于脚本,我使用字符串连接和stringbuilder。