无法从'System.Collections.Generic.IEnumerable <int>'转换为'System.Linq.IQueryable <int?> </int?> </int>

时间:2012-06-13 23:14:15

标签: c# linq

我收到以下错误 实例参数:

  

无法从'System.Collections.Generic.IEnumerable'转换为'System.Linq.IQueryable'

问题是变量Assay.assayKey在表中可能为null所以我不能使用int assayKey而不是int? assayKey。我很难过,有人可以帮忙吗?谢谢

      Search Entry
        {

        int id {get;set;}
        int? key {get;set;}
        int[] selectedKeys {get;set;}
        }

        Assay
       {
        int id {get;set;}
        int? AssayKey { get; set; }
       }

        CollObject
        {
         Ienumerable<int> keys {get;set;}
        }

在我的控制器操作方法中,我正在执行以下操作来检索id数组:

       SearchEntry.selectedKeys = (from assays in db.assay
                                   where CollObject.Keys.Contains(assay.AssayKey)
                                   select assays.id).toArray();

我找到了解决方案。由于Assay Key是一个可以为空的int,我只需要做这样的事情

.Contains(assays.AssayKey ??0)

1 个答案:

答案 0 :(得分:3)

问题是我无法在可以为空的int上使用.contains,所以我必须做这样的事情才能使它工作

.Contains(assays.AssayKey ??0)