IQueryable содержит любой массив строк - PullRequest
0 голосов
/ 24 января 2010

Я не уверен, почему 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 ]

0 голосов
/ 24 января 2010

Вы можете сделать запрос внутри запроса.

Вот случайный пример вложенного запроса Linq, который я нашел через Google, ваш пробег может отличаться:

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 }));
0 голосов
/ 24 января 2010

Я подозреваю, что ваш objectFactory или IUserDao, вероятно, равен нулю, и поэтому вы получаете NullReferenceException. Вы отладили его, потому что отладчик скажет вам, какой объект является нулевым.

...