Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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
C# 实体框架关系Foreach_C#_Asp.net Mvc 3_Linq_Entity Framework 4.3 - Fatal编程技术网

C# 实体框架关系Foreach

C# 实体框架关系Foreach,c#,asp.net-mvc-3,linq,entity-framework-4.3,C#,Asp.net Mvc 3,Linq,Entity Framework 4.3,我有这些类,我正在使用一个存储库模式,并试图得到一个IEnumerable来包含workordeail。我是MVC和实体框架的新手,我不知道如何包含WorkOrderDetails public IEnumerable<Schedule> GetFuture() { string tZone = "Pacific Standard Time"; DateTime today = Today(tZone);

我有这些类,我正在使用一个存储库模式,并试图得到一个IEnumerable来包含workordeail。我是MVC和实体框架的新手,我不知道如何包含WorkOrderDetails

public IEnumerable<Schedule> GetFuture()
        {
            string tZone = "Pacific Standard Time";

            DateTime today = Today(tZone);

            var schedule = context.Schedules
                .Where(s => s.Date >= today).ToList();            

            return schedule;
        }

public abstract class Entity
    {
        public int Id { get; set; }
    }

 public class Schedule : Entity
    {
        public DateTime Date { get; set; }

        public bool Free { get; set; }

        public int WorkOrderId { get; set; }
        public virtual WorkOrder WorkOrder { get; set; }          
    }

 public class WorkOrder : Entity
    {

        public string Name { get; set; }
        public string Type { get; set; }

        public virtual ICollection<WorkOrderDetail> WorkOrderDetails { get; set; }
     }
public class WorkOrderDetail : Entity
    {
       public string Job { get; set; }
       public bool Finished { get; set; }
    }
public IEnumerable GetFuture()
{
字符串tZone=“太平洋标准时间”;
DateTime today=今天(tZone);
var schedule=context.Schedules
.Where(s=>s.Date>=今天).ToList();
返回时间表;
}
公共抽象类实体
{
公共int Id{get;set;}
}
公共课程表:实体
{
公共日期时间日期{get;set;}
公共布尔自由{get;set;}
public int WorkOrderId{get;set;}
公共虚拟工单工单{get;set;}
}
公共类工作顺序:实体
{
公共字符串名称{get;set;}
公共字符串类型{get;set;}
公共虚拟ICollection WorkOrderDetails{get;set;}
}
公共类WorkOrderDetail:实体
{
公共字符串作业{get;set;}
公共bool已完成{get;set;}
}
更改此选项:

var schedule = context.Schedules.Where(s => s.Date >= today).ToList();    
致:


或者使用ef 4.1+,您可以使用lambda语法,
.Include(s=>s.WorkOrder.workordedtail)
@LukeMcGregor我尝试过这个,但当我尝试访问视图'foreach(模型中的var detail)中的作业时,{@detail.WorkOrder.workordedtail.Job}“它不起作用了。@弗林当你试着那样做时会发生什么,你会得到一个例外吗?”?如果是这样,那是什么?@CodingGorilla我想出来了,我只需要使用模型上的selectmany来访问细节。我不确定这是否是最好的办法foreach(模型中的var细节,其中(i=>i.WorkOrderID==WorkOrderT.WorkOrderID)。选择Many(i=>i.WorkOrder.WorkOrderDetails)){@detail.Job}'
var schedule = context.Schedules.Include("WorkOrder.WorkOrderDetail").Where(s => s.Date >= today).ToList();