码迷,mamicode.com
首页 > 其他好文 > 详细

EF之外键Include() left join

时间:2016-11-22 15:02:32      阅读:433      评论:0      收藏:0      [点我收藏+]

标签:sop   dbr   查询   require   定义   lis   count   外键   .class   

项目中用EF实现外键查询出的数据, 查询数量正确, 但实现返回数据集数量不对

//DbContext.cs
HasRequired(s => s.ClassRoom)
            .WithMany()
            .HasForeignKey(student => student.ClassRoomId);
//查询语句
dbRead.Set<Student>().Include(x=>x.ClassRoom);

查询 .Count()和.ToList()结果数量不一致

经调试后发现生成的Sql语句为 inner join

正确的结果应该是 left join

此时应该如下定义外键

HasOptional(s => s.ClassRoom)
             .WithMany()
             .HasForeignKey(student => student.ClassRoomId);

此时返回的结果就正确了!

EF之外键Include() left join

标签:sop   dbr   查询   require   定义   lis   count   外键   .class   

原文地址:http://www.cnblogs.com/hanf/p/6089303.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!