代码之家  ›  专栏  ›  技术社区  ›  Jacob

IQueryable包含任何字符串数组

  •  0
  • Jacob  · 技术社区  · 16 年前

    我不知道为什么IQuerable会限制我从数据库中搜索数组中包含字符串的数据。

    objectFactory.Resolve<IUserDao>().Query.
                    Where(t => 
                        (spltedInput.Any(val=> t.LastName.Contains(val)) || spltedInput.Any(val=> t.Name.Contains(val))) 
                        && t.MasterCompany.Id == MasterCompanySeted).
                    Select(t => new { Name = t.Name + " " + t.LastName, Id = t.Id }).
                    AsEnumerable().
                    Select(t => new RadComboBoxItemData() { Text = t.Name, Value = t.Id.ToString() })
                    .ToArray();
    

    它抛出了NullReferenceException,我不确定该做什么来检查数组中的任何元素是否包含在LastName或Name中,以及导致此异常的原因。

    我只是猜测这是因为你不能在查询中进行查询?

    2 回复  |  直到 11 年前
        1
  •  0
  •   Tony The Lion    16 年前

    我怀疑你的 objectFactory IUserDao 可能是空的,所以你得到一个 NullReferenceException . 你调试过了吗,因为调试器会告诉你什么对象是空的。

        2
  •  0
  •   Michael Maddox    16 年前

    可以在查询中执行查询。

    var query = people
        .Where(p => p.ID == 1)
        .SelectMany(p => roles
            .Where(r => r.ID == p.ID)
            .Select(r => new { p.FirstName, p.LastName, r.Role }));