【发布时间】:2015-12-02 16:36:27
【问题描述】:
我正在使用 EF6 并使用投影进行查询。我从here: 提出的问题中得到了代码
这段代码运行良好,但是它生成了超过 1200 行 SQL,并且在第一次调用时,编译查询需要 5 秒以上,执行它需要 300 毫秒,这是不可接受的。你可以明白我的意思here:
我使用 Glimpse 查看它生成的 SQL 并有趣地注意到,如果我删除 cmets,SQL 将减少到只有 200 行代码。
我决定将 SQL 放入存储过程中,虽然它正确返回了帖子数据,但 PostAuthor 没有被填充。
我仔细检查并使用 Linq 查询填充了它,但使用的是
_context.Posts.SqlQuery(...)
没有填充 PostAuthor 对象。
我还仔细检查了 SQL Server Management Studio 中的原始 SQL 查询,所有数据都被返回,只是在返回时没有被填充。
我错过了什么吗?这是一个已知问题吗?
【问题讨论】:
-
您可能需要显示一些代码来提供帮助。您使用的 C# LINQ 查询是什么? Glimpse 中生成的查询的 SQL 是什么?您的替代解决方案中的点是什么?
-
如果我没记错的话(因为我不使用这样的存储过程),这是基于我读过的其他一些线程的已知问题。
标签: c# asp.net-mvc entity-framework linq