当我尝试在数据库中搜索包含数组中字符串的数据时,我不确定为什么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中,以及导致此异常的原因。
我只是猜测是因为你无法在查询中进行查询?
答案 0 :(得分:0)
我怀疑您的objectFactory
或IUserDao
可能是空的,这就是您获得NullReferenceException
的原因。你调试了它,导致调试器告诉你什么对象是null。
答案 1 :(得分: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 }));