次のクエリを実行しようとしていますが、間違った結果が返されます。ado.netエンティティフレームワークでwhere句のcountを使用
foreach (var item in (from project in db.Projects
where project.Id == pProjectId
from task in project.Tasks
from taskItem in task.TaskItems
where taskItem.Velocities.Count() == 0 // not finished yet
select new
{
ProjectId = pProjectId,
PriorityId = task.Priorities.Id,
TaskId = task.Id,
ResourceId = taskItem.Resources.Id,
EstimatedDuration = taskItem.EstimatedDuration,
TaskItemId = taskItem.Id
}))
{
}
速度関連オブジェクトを持たないすべてのtaskItemsからオブジェクトを生成しようとしています。テーブル構造は、すべてのtaskItemが多くのベロシティを持つことができるということです。この呼び出しの直前に、いくつかのアイテムに速度を与えますが、このwhere句ではフィルタリングされません。間違った何かをしているのですか?
編集:私は(ある程度コードを見た後で)何らかのグループ化を指定する必要があると思います。私は実際にはベロシティのレコードの詳細を必要としませんが、タスクに関連するものの数だけです。項目
これは私がやったことです...この時点では、私のアプリケーションは少し劣っていればうまく動作します。 –