首页 新闻 会员 周边

如何在EF Core中查询可空的变量。

0
悬赏园豆:20 [已解决问题] 解决于 2017-02-25 10:20

有一个实体类有如下定义:

...
public Guid? guidUserId;
public int userId;
... 

我现在的到了 一个List guidUserId 类型,我想要通过这个获取userId (这个和guidUserID是一一对应的)
我试过了以下的方法:

 _userInfo.Where(q => guidUserId.Contains(q.guidUserId))
              .Select(q => q.userId);

//或者
from s in _userInfo
                    where s.guidUserId !=null &&  ids.Contains(s.guidUserId.Value)
                    select s.UserID);

上面两种方法一律失败,在SQL Profile 中监控,发现进行了全表查询。
问题出在 guidUserId 为可空的。
请问在EF Core 中如何查询可空变量的值?


问题补充:

解决方案:
  由于在Contains 中没有找到解决办法, 于是重新写了一个方法,绕过这个限制。不传 可空类型的变量。


BUTTERAPPLE的主页 BUTTERAPPLE | 老鸟四级 | 园豆:3190
提问于:2017-02-22 17:29
< >
分享
最佳答案
1

问题不是可控.问题是Contains

数组的类型是guid?还是guid

收获园豆:10
吴瑞祥 | 高人七级 |园豆:29449 | 2017-02-22 17:52

那我上面的Contains 的错误在哪?应该怎样修改?


BUTTERAPPLE | 园豆:3190 (老鸟四级) | 2017-02-22 17:53

@BUTTERAPPLE: 数组的类型是guid?还是guid

吴瑞祥 | 园豆:29449 (高人七级) | 2017-02-23 10:31

@吴瑞祥: 数组类型为 guid


BUTTERAPPLE | 园豆:3190 (老鸟四级) | 2017-02-23 10:32

@BUTTERAPPLE: 图看不到.

吴瑞祥 | 园豆:29449 (高人七级) | 2017-02-23 10:55

@吴瑞祥: 图看不到是什么意思?我没有上传图片呀!


BUTTERAPPLE | 园豆:3190 (老鸟四级) | 2017-02-23 10:56

@BUTTERAPPLE: 那你后面带个口...

不行就换类型吧.可空改成不可空.guid改成string.你没看identity自带的id都是string类型的guid

吴瑞祥 | 园豆:29449 (高人七级) | 2017-02-23 11:06

@吴瑞祥: 好的,我今天换了另外一种方式来实现。


BUTTERAPPLE | 园豆:3190 (老鸟四级) | 2017-02-23 11:08
其他回答(1)
1

为何要查询可空的值,判断是否可空不就ok了吗?不明白你的实际需求


收获园豆:10
Jeffcky | 园豆:2789 (老鸟四级) | 2017-02-22 23:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册