Доступ к значению внешнего ключа (int) в Entity Framework

Я провел последние 3-4 часа, пытаясь получить значение внешнего ключа, используя linq для сущностей и хранимую процедуру. Любой совет высоко ценится.

public JsonResult GetEvents(double? start, double? end)
    {
        AnoEntities _dbAno = new AnoEntities();

        var events = _dbAno.Events_GetByDateRange(fromDate, toDate);

        var eventList = from e in events
                        select new
                        {
                            id = e.id,
                            title = e.title,
                            className = e.event_types.type.ToString()
                        };

        return Json(eventList.ToArray());
    }

type_id - это значение внешнего ключа, которого я пытаюсь достичь. Я не могу получить его, так что появиться в модели данных сущностей, и я не могу до него добраться. e.event_types и e.event_typesReference равны нулю, поэтому такие вещи, как e.event_typesReference.EntityKey.EntityKeyValues.First().Value.ToString() не работают.

Спасибо!

1 ответ

Решение

Я не вижу никаких методов.Include или методов Load для even_types, и я предполагаю, что вы возвращаете IEnumerable из вашего _dbAno.Events_GetByDateRange(fromDate, toDate). Как Крейг указал в комментариях, если ваш возвращаемый тип GetByDateRange - IQueryable, который вы проецируете, и EF должен стремиться к загрузке для вас.

Просто напоминание о том, что неявная отложенная загрузка не поддерживается "из коробки" в Entity Framework 1.0. Вам нужно будет вручную загрузить event_types с помощью Load() или использовать метод Include в ObjectQuery.

Другие вопросы по тегам