составной запрос linq - PullRequest
       3

составной запрос linq

1 голос
/ 10 декабря 2011

У меня есть проект Visual Studio 2008 C # .NET 3.5, использующий MySql 5.1.53 и MySql Connector / Net 6.4.4 в Windows 7 x64.

В моем приложении я ищу элементы без статуса для обновлений или тестовых случаев, поэтому я запрашиваю свою базу данных как:

var task_query = from task in task_list_.TaskSet
                 from tc in task.TestCases
                 where
                 (task.Upgrade != null && task.Upgrade.Status.Count == 0) ||
                 tc.Status.Count == 0
                 orderby task.Order 
                 select task;

Но она никогда не возвращает никаких элементов.Если, однако, я ограничиваю свой запрос только обновлениями и выполняю такие запросы:

var task_query = from task in task_list_.TaskSet
                 where
                 (task.Upgrade != null && task.Upgrade.Status.Count == 0)
                 orderby task.Order 
                 select task;

, я нахожу обновления, которые не имеют статуса.Аналогично, этот запрос:

var task_query = from task in task_list_.TaskSet
                 from tc in task.TestCases
                 where
                 tc.Status.Count == 0
                 orderby task.Order 
                 select task;

успешно найдет контрольные примеры без статуса.

Как мне нужно изменить исходный запрос linq, чтобы найти и контрольные примеры, и обновления, где статус.количество == 0?

Ответы [ 2 ]

1 голос
/ 10 декабря 2011

Возьмите два отдельных запроса и используйте объединение, чтобы объединить их.

0 голосов
/ 10 декабря 2011
var task_query = from task in task_list_.TaskSet 
             where 
             (task.Upgrade != null && task.Upgrade.Status.Count == 0) || 
             task.TestCases.Any(tc => tc.Status.Count == 0)
             orderby task.Order  
             select task; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...