Доступ к значению внешнего ключа (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.