Asp.net mvc 3 MVC 3中以下代码的快捷方式LINQ toentity查询
我有直接连接的实体。这里,任务间接连接到Sprint。一个BacklogItem可以有多个任务,每个BacklogItem属于一个Sprint。因此,在我的应用程序中,我需要属于某个sprint的所有任务。由于它们不直接连接,我不得不编写许多代码行,如下所示:Asp.net mvc 3 MVC 3中以下代码的快捷方式LINQ toentity查询,asp.net-mvc-3,linq,entity-framework,Asp.net Mvc 3,Linq,Entity Framework,我有直接连接的实体。这里,任务间接连接到Sprint。一个BacklogItem可以有多个任务,每个BacklogItem属于一个Sprint。因此,在我的应用程序中,我需要属于某个sprint的所有任务。由于它们不直接连接,我不得不编写许多代码行,如下所示: public viewResult tasksForSprint(int sprintId){ List<Task> tasksforSprint = new List<Task>(); var backlogI
public viewResult tasksForSprint(int sprintId){
List<Task> tasksforSprint = new List<Task>();
var backlogItemlsit = db.BacklogItems.Where(b => b.sprintId == sprintId).OrderBy(i => i.backlogId).ToList();
var sprintTaskItems = db.Tasks.OrderBy(i => i.taskId).ToList();
foreach (var item in sprintTaskItems)
{
if (backlogItemlsit.Any(b => b.backlogId == item.backlogId))
taskforSprint.Add(item);
}
return view(tasksforSprint);
}
public viewResult tasksForSprint(int-sprintId){
List tasksforSprint=新列表();
var backlogItemlsit=db.BacklogItems.Where(b=>b.sprintId==sprintId).OrderBy(i=>i.backlogId.ToList();
var sprintTaskItems=db.Tasks.OrderBy(i=>i.taskId.ToList();
foreach(sprintTaskItems中的变量项)
{
if(backlogItemlsit.Any(b=>b.backlogId==item.backlogId))
taskforSprint.Add(项目);
}
返回视图(tasksforSprint);
}
现在,我想要的是用一个LINQ查询而不是6行代码来获得tasksforSprint列表。
提前谢谢。看起来像是加入。未经测试:
db.BacklogItems
.Where(b => b.sprintId == sprintId)
.Join(db.Tasks,
// outer join key
sprint => sprint.backlogId,
// inner join key
task => task.backlogId,
// result selector -- take the tasks
(outer, inner) => inner)
.OrderBy(task => task.taskId)
.ToList();
看起来这是一个连接。未经测试:
db.BacklogItems
.Where(b => b.sprintId == sprintId)
.Join(db.Tasks,
// outer join key
sprint => sprint.backlogId,
// inner join key
task => task.backlogId,
// result selector -- take the tasks
(outer, inner) => inner)
.OrderBy(task => task.taskId)
.ToList();
多谢各位。我现在知道了。非常感谢你。我现在明白了。