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

あなたのobjectFactoryまたはIUserDaoはおそらく Null であると思われますNullReferenceException。あなたはそれをデバッグしましたか?デバッガーはどのオブジェクトがnullであるかを教えてくれます。

于 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 に答える