首页 新闻 会员 周边 捐助

ef 查询问题

0
悬赏园豆:50 [已解决问题] 解决于 2014-11-28 09:33

查询出来A中CreatedByUser=null,而B中则有值,为什么我并没有查询g=>CreatedByUser,B中给查询出来了,望大婶解答

阳.咩咩的主页 阳.咩咩 | 初学一级 | 园豆:4
提问于:2014-11-27 11:33
< >
分享
最佳答案
0

你A是怎么看没值的?

收获园豆:40
幻天芒 | 高人七级 |园豆:37207 | 2014-11-27 12:14

调试啊

阳.咩咩 | 园豆:4 (初学一级) | 2014-11-27 12:15

而且我并没有查CreatedByUser,按理说不应该有值

阳.咩咩 | 园豆:4 (初学一级) | 2014-11-27 12:17

@yy_yang: EF中,有个级联查询。只要实体中有这样的关系,那么是会有结果的。比较疑惑你没有值的情况。

幻天芒 | 园豆:37207 (高人七级) | 2014-11-27 12:25

@幻天芒: private IQueryable<T> CreatePathQuery<T>(DbSet<T> dbSet, params Expression<Func<T, object>>[] path) where T : class
        {
            IQueryable<T> dbQuery = dbSet.Include(path[0]);
            for (int i = 1; i < path.Length; i++)
            {
                dbQuery = dbQuery.Include(path[i]);
            }
            return dbQuery;
        }

阳.咩咩 | 园豆:4 (初学一级) | 2014-11-27 12:31

@yy_yang: Include的意思表示直接查询,不代表就干掉了级联查询哇。

幻天芒 | 园豆:37207 (高人七级) | 2014-11-27 13:14

@幻天芒: 哦,那就奇怪了,依你所说,就不应该出现没有值得情况咯

阳.咩咩 | 园豆:4 (初学一级) | 2014-11-27 13:17

 

这是调试A的结果,为null

阳.咩咩 | 园豆:4 (初学一级) | 2014-11-27 13:21

@yy_yang: 看看A这种情况下,path是个什么玩意?延迟加载指的是有级联关系,那么用到了内部的对象就会触发数据查询。

幻天芒 | 园豆:37207 (高人七级) | 2014-11-27 14:45

@yy_yang: 建议简化示例,测试一下。防止其他地方代码影响。

幻天芒 | 园豆:37207 (高人七级) | 2014-11-27 14:46

@幻天芒: 恩,谢谢你的建议

阳.咩咩 | 园豆:4 (初学一级) | 2014-11-27 14:55
其他回答(1)
0

这个设置为false就有有值了。

收获园豆:10
悟行 | 园豆:12559 (专家六级) | 2014-11-27 14:14

试了下,没有变化,结果依旧同上

支持(0) 反对(0) 阳.咩咩 | 园豆:4 (初学一级) | 2014-11-27 14:24

我需要的结果是CreatedByUser=null

经过测试

SelectList<Group>(g => g.IsActive && g.IsAcquisitionGroup, g => g.Users).ToList();

改为SelectList<Group>(g => g.IsActive && g.IsAcquisitionGroup).ToList();

此时CreatedByUser=null

支持(0) 反对(0) 阳.咩咩 | 园豆:4 (初学一级) | 2014-11-27 14:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册