2009-09-09 52 views

回答

3
+0

嗯,现在,我有一个名为Posts的表和一个名为Sites的表。 如果我从“db.Posts”中得到结果,它有一个ToTraceString()方法。然而,我想看看在更复杂的查询中产生的SQL,在这种情况下:从站点在db.Sites order by site.Order降序,site.Title选择新的SitePosts(){Site = site,Posts = site .Posts.OrderByDescending(p => p.PublicationTime)} 如何获取该TraceString? – 2009-09-09 19:54:12

+0

将其转换为ObjectQuery。 – 2009-09-09 20:34:49

+0

我得到一个“无法转换类型Models.Site到System.Data.Objects.ObjectQuery”转换错误。 我这样做: Site site =(我之前提到的查询); ObjectQuery oq =(ObjectQuery)网站; 我在这里错过了什么? 感谢您的帮助! – 2009-09-14 13:53:18

1

由于实体框架支持多个后端(而不是LINQ到SQL这是唯一的SQL Server),你不能真正得到实际的SQL发送到从EF后端服务器。

为了真正了解发生了什么,我建议在SQL Server后端启动SQL Profiler,并查看发送了哪些查询。

如果您不熟悉SQL Profiler工具,请参阅此article on Simple-Talk和可能的此video series成为SQL事件探查器主控。

Marc