Entity framework 在实体框架中访问外键值(int)
我刚刚花了3-4个小时尝试使用linq to实体和存储过程检索外键值。任何建议都将不胜感激Entity framework 在实体框架中访问外键值(int),entity-framework,foreign-keys,entitykey,Entity Framework,Foreign Keys,Entitykey,我刚刚花了3-4个小时尝试使用linq to实体和存储过程检索外键值。任何建议都将不胜感激 public JsonResult GetEvents(double? start, double? end) { AnoEntities _dbAno = new AnoEntities(); var events = _dbAno.Events_GetByDateRange(fromDate, toDate); var eventList =
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\u类型和e.event\u类型引用均为空,因此e.event\u类型引用.EntityKey.EntityKeyValues.First().Value.ToString()之类的操作无效
谢谢 我没有看到任何。在偶数类型上包含方法或加载方法,我假设您从_dbAno.Events\u GetByDateRange(fromDate,toDate)返回IEnumerable。正如Craig在评论中指出的那样,如果您的GetByDateRange返回类型是IQueryable,那么您将进行投影,并且EF应该急切地为您加载
只是提醒一下,EntityFramework1.0不支持开箱即用的隐式延迟加载。您需要使用load()手动加载事件类型,或者在ObjectQuery上使用Include方法。他正在投影,因此如果
事件
的类型为IQueryable
,则不需要立即加载(Include)。如果没有看到类型和他的模型模式,很难说更多。但是在投影时不需要急于加载、显式加载和延迟加载。谢谢Craig,这是一个很好的观点。我的回答假设他返回了一个IEnumerable。