首页 新闻 会员 周边

EntityFrameWork.Core 和 EntityFramework 在执行查询时有什么不同?

0
悬赏园豆:30 [已解决问题] 解决于 2017-01-09 10:53

最近,在迁移一个 .NET Framework 的项目到 .NET Core 。然后这几天一直遇到了一个问题,直到今天才有了点起色。


问题其实时这样的:
这个是在 .NET Framework上面的查询代码。

return await myInfo
                .Where(...)
                .OrderBy(...)
                .ThenByDescending(..)
               .ToListAsync();

然后 myInfo 这个Entity 中呢有一个外键 就是 UerInfo
.NET Framework上面呢,上面那段代码执行后,是能够成功也把我的UserInfo 查询出来的,但是呢,我迁移到 .NET Core上 发现 那个 UserInfo的值竟然是空的。前些天一直以为是我的AutoMapper 映射有问题,但是查看了 代码发现不对。最终锁定在这个语句。


然后今天咨询了一下, 在原来的代码中加上 .Include(c => c.外键名) 竟然查出来了。
代码如下:

return await myInfo
                .Where(...)
                .Include(c => c.外键)
                .OrderBy(...)
                .ThenByDescending(..)
               .ToListAsync();

所以我想问一下,这个是EntityFramework 和 EntityFramework.Core 这个的区别吗?
最根本的原因是什么?


BUTTERAPPLE的主页 BUTTERAPPLE | 老鸟四级 | 园豆:3190
提问于:2017-01-08 16:29
< >
分享
最佳答案
3

efcore不再有延迟加载,所以你只能通过Include来进行显式加载


收获园豆:30
Jeffcky | 老鸟四级 |园豆:2789 | 2017-01-08 18:10
其他回答(1)
0
BUTTERAPPLE | 园豆:3190 (老鸟四级) | 2017-01-09 10:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册