0

我刚刚花了 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_typese.event_typesReference都是空的,所以像e.event_typesReference.EntityKey.EntityKeyValues.First().Value.ToString()这样的东西不起作用。

谢谢!

4

1 回答 1

1

我在 even_types 上没有看到任何 .Include 方法或 Load 方法,我假设您从 _dbAno.Events_GetByDateRange(fromDate, toDate) 返回 IEnumerable。就像克雷格在评论中指出的那样,如果您的 GetByDateRange 返回类型是 IQueryable ,那么您将进行投影并且 EF 应该为您急切加载。

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

于 2010-02-05T02:00:03.660 回答