我在Windows 7 x64上使用MySql 5.1.53和MySql Connector / Net 6.4.4进行Visual Studio 2008 C#.NET 3.5项目。
在我的应用程序中,我正在寻找没有升级或测试用例状态的项目,因此我将我的数据库查询为:
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查询以找到status.count == 0的测试用例和升级?
答案 0 :(得分:1)
进行两个单独的查询并使用联合来组合它们。
答案 1 :(得分:0)
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;