访问Entity Framework中的外键值(int)

时间:2010-02-05 00:31:32

标签: entity-framework foreign-keys entitykey

我花了最后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 个答案:

答案 0 :(得分:1)

我没有在even_types上看到任何.Include方法或Load方法,我假设你从_dbAno.Events_GetByDateRange(fromDate,toDate)返回IEnumerable。就像Craig在评论中指出的那样,如果你的返回类型GetByDateRange是IQueryable,你就会投射,EF应该为你加载。

提醒一下,Entity Framework 1.0中不支持隐式延迟加载。您需要使用Load()手动加载event_types或在ObjectQuery上使用Include方法。