Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 在实体框架中访问外键值(int)_Entity Framework_Foreign Keys_Entitykey - Fatal编程技术网

Entity framework 在实体框架中访问外键值(int)

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 =

我刚刚花了3-4个小时尝试使用linq to实体和存储过程检索外键值。任何建议都将不胜感激

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。