尝试创建Lambda表达式以从包含七个Guid值中的任何一个的数据库中选择记录。

当我尝试以下操作时:

searchedOpps = searchedOpps.Where(s => s.STAGEID == stageAGuid && stageAPlusGuid && //etc);


我得到一个Operator '&&' cannot be applied to operands of type 'bool' and 'System.Guid',与||相同(不确定哪个或是否应该使用这两个运算符)

如果我尝试:

searchedOpps = searchedOpps.Where(s => s.STAGEID == stageAGuid);
searchedOpps = searchedOpps.Where(s => s.STAGEID == stageAPlusGuid);


一无所有

有人可以帮我吗?

最佳答案

如果您有一些使用OR运算符的键(例如在C#中为||),可以尝试使用此键:

searchedOpps = searchedOpps.Where(s => s.STAGEID == stageAGuid
                                    || s.STAGEID == stageAPlusGuid));


但是,如果有键列表,则可以尝试使用Contains方法作为示例:

List<Guid> guids = /* get your keys from somewhere */;
searchedOpps = searchedOpps.Where(s => guids .Contains(s.STAGEID));


如果您正在使用linq到数据库(linq-to-sql,entity-framework,nhibernate等),它将使用IN运算符为您生成所有键的查询。

09-06 14:00