我花了最后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()不工作。
谢谢!
答案 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方法。