有一个实体类有如下定义:
...
public Guid? guidUserId;
public int userId;
...
我现在的到了 一个List
我试过了以下的方法:
_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 中没有找到解决办法, 于是重新写了一个方法,绕过这个限制。不传 ?
可空类型的变量。
问题不是可控.问题是Contains
数组的类型是guid?还是guid
那我上面的Contains 的错误在哪?应该怎样修改?
@BUTTERAPPLE: 数组的类型是guid?还是guid
@吴瑞祥: 数组类型为 guid
@BUTTERAPPLE: 图看不到.
@吴瑞祥: 图看不到是什么意思?我没有上传图片呀!
@BUTTERAPPLE: 那你后面带个口...
不行就换类型吧.可空改成不可空.guid改成string.你没看identity自带的id都是string类型的guid
@吴瑞祥: 好的,我今天换了另外一种方式来实现。
为何要查询可空的值,判断是否可空不就ok了吗?不明白你的实际需求