繁体   English   中英

实体框架SQL查询未返回正确的数据

[英]Entity Framework SQL query not returning correct data

我正在使用EF6,并使用投影进行查询。 我从这里问的一个问题得到了代码

该代码可以完美运行,但是它会生成1200行以上的SQL,并且在首次调用时,编译查询需要5秒钟以上的时间,执行查询需要300毫秒的时间,这是不可接受的。 您可以在这里看到我的意思

我使用Glimpse来查看它生成的SQL,有趣的是,如果删除注释,SQL会减少到仅200行代码。

我决定将SQL放入存储过程中,尽管它正确返回了帖子数据,但并未填充PostAuthor。

我仔细检查,并使用Linq查询填充它,但是使用

_context.Posts.SqlQuery(...)

PostAuthor对象未填充。

我还仔细检查了SQL Server Management Studio中的原始SQL查询,并返回了所有数据,但返回时并没有填充该数据。

我想念什么吗? 这是一个已知的问题?

尝试以下方法:

var allposts = _context.Posts
  .Include(p=>p.Comments)
  .Include(p=>p.Attachments)
  .Where(t => t.PostAuthor.Id == postAuthorId)
  .ToList();

当然,发布SQL可能有助于确定是否还有更好的方法来检索数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM