0

当我尝试在数据库中搜索包含数组中字符串的数据时,我不确定为什么 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 中,以及导致此异常的原因。

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

4

2 回答 2

0

我怀疑您的objectFactoryorIUserDao可能是 Null ,这就是您获得NullReferenceException. 你调试过它吗,因为调试器会告诉你什么对象是空的。

于 2010-01-24T09:52:04.473 回答
0

您可以在查询中进行查询。

这是我通过 Google 找到的嵌套 Linq 查询的随机示例,您的里程可能会有所不同:

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 }));
于 2010-01-24T11:46:10.413 回答