无法将'System.Collections.Generic.List <int?>'隐式转换为'System.Collections.Generic.List <int>'</int> </int?>

时间:2012-06-06 09:58:25

标签: linq

List<int> execFavoriteUsers = 
        (from exec in context.ExecutiveFavorites 
         where exec.ExecutiveUserID == model.UserID 
         select exec.ProfileUserID) 
        .ToList();
query = (from cast in query
        where execFavoriteUsers.Contains(cast.UserID) == false
        select cast);

但它在另一个系统中运行良好。如何解决此错误?

2 个答案:

答案 0 :(得分:0)

您确定ProfileUserID的类型是int吗?可能是Nullable<int>long还是uint

你总是可以删除显式声明并将其更改为var(在这种情况下不会发生冲突,因为它会隐式推断出类型)。

答案 1 :(得分:0)

尝试使用List<int?>代替List<int>

或者如果您需要不可为空的整数:

List<int> execFavoriteUsers = 
        (from exec in context.ExecutiveFavorites 
         where exec.ExecutiveUserID == model.UserID 
         where exec.ProfileUserID.HasValue
         select exec.ProfileUserID.Value) 
        .ToList();