Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 MVC 3中以下代码的快捷方式LINQ toentity查询_Asp.net Mvc 3_Linq_Entity Framework - Fatal编程技术网

Asp.net mvc 3 MVC 3中以下代码的快捷方式LINQ toentity查询

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

我有直接连接的实体。这里,任务间接连接到Sprint。一个BacklogItem可以有多个任务,每个BacklogItem属于一个Sprint。因此,在我的应用程序中,我需要属于某个sprint的所有任务。由于它们不直接连接,我不得不编写许多代码行,如下所示:

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();

多谢各位。我现在知道了。非常感谢你。我现在明白了。