Entity framework EF6上的投影和多级加载问题

Entity framework EF6上的投影和多级加载问题,entity-framework,eager-loading,Entity Framework,Eager Loading,im使用EF6,并且im在多个级别上有一个问题投射到anonymus类型急切地加载:这是一个示例: var scheduledList = db_hms.Scheduled .Include(s => s.scheduled_product_service.Select(sps => sps.Product_Service)) .Where(s => s.id_medical_doctor ==

im使用EF6,并且im在多个级别上有一个问题投射到anonymus类型急切地加载:这是一个示例:

 var scheduledList = db_hms.Scheduled
                    .Include(s => s.scheduled_product_service.Select(sps => sps.Product_Service))
                    .Where(s => s.id_medical_doctor == idMedic)
                    .Select(sch => new
                    {
                       id_scheduled = sch.id_scheduled,
                       id_natural_person = sch.id_natural_person,
                       scheduled_product_service = sch.scheduled_product_service,
                       obs = sch.obs,
                    }).ToList();
因此,计划的产品服务是一个列表,
product\u service
是该列表上的一个对象,问题是当我执行此代码,然后尝试获取
product\u服务时,我得到一个空异常


你知道我做错了什么吗

虽然有点晚了,但由于我现在正在努力解决这个问题,实体框架似乎不支持在投影的同时进行快速加载。您需要将整个数据加载到内存中,然后执行投影:

var scheduledList = db_hms.Scheduled
                .Include(s => s.scheduled_product_service.Select(sps => sps.Product_Service))
                .Where(s => s.id_medical_doctor == idMedic)
                .ToList()
                .Select(sch => new
                {
                   id_scheduled = sch.id_scheduled,
                   id_natural_person = sch.id_natural_person,
                   scheduled_product_service = sch.scheduled_product_service,
                   obs = sch.obs,
                });
这应该适合你,但它不是最佳的