【问题标题】:Entity Framework Relationships Foreach实体框架关系 Foreach
【发布时间】:2012-06-19 01:48:29
【问题描述】:

我有这些类,我正在使用存储库模式并尝试让 IEnumerable 包含 WorkOrderDetail。我是 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; }
    }

【问题讨论】:

    标签: c# asp.net-mvc-3 linq entity-framework-4.3


    【解决方案1】:

    改变这个:

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

    到:

    var schedule = context.Schedules.Include("WorkOrder.WorkOrderDetail").Where(s => s.Date >= today).ToList();
    

    【讨论】:

    • 或者使用 ef 4.1 + 你可以使用 lambda 语法,.Include(s=&gt;s. WorkOrder.WorkOrderDetail)
    • @LukeMcGregor 我试过这个,但是当我尝试在视图'foreach(模型中的变量细节)){@detail.WorkOrder.WorkOrderDetail.Job}'中访问作业时它不起作用。
    • @flean 当您尝试这样做时会发生什么,您是否遇到异常?如果有,那是什么?
    • @CodingGorilla 我想通了,我只需要使用模型上的 selectmany 来访问详细信息。我不确定这是否是最好的方法。 'foreach(模型中的var详细信息.Where(i => i.WorkOrderID == WorkOrderT.WorkOrderID).SelectMany(i => i.WorkOrder.WorkOrderDetails)){@detail.Job}'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-12
    • 2014-11-27
    相关资源
    最近更新 更多