2010-01-24 98 views
0

我不確定爲什麼IQuerable限制了我在嘗試從數組中搜索包含字符串的數據的數據庫時。IQueryable包含字符串數組中的任何一個

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異常,我不知道該怎麼做,以檢查是否從陣列中的任何元素被內姓氏或姓名,是什麼原因導致這種異常containd。

我只是猜測,這是因爲你不能在查詢內查詢?

回答

0

我懷疑你的objectFactoryIUserDao可能是空的,這就是爲什麼你會得到NullReferenceException。你是否調試過它,導致調試器會告訴你什麼對象爲空。

+0

不,它就像一個魅力,我只給這個代碼,所以你可以看到的背景下,當我改變它爲例如:t.LastName.Contains(spltedInput [0])它很好。 – Jacob 2010-01-24 09:55:02

0

您可以在查詢中執行查詢。

這裏有一個嵌套的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 })); 
相關問題