Доступ к значению внешнего ключа (int) в Entity Framework - PullRequest
0 голосов
/ 05 февраля 2010

Я провел последние 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 () aren ' т работает.

Спасибо!

1 Ответ

1 голос
/ 05 февраля 2010

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

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

...