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

发布于 2024-08-20 00:02:28 字数 860 浏览 2 评论 0原文

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

谢谢!

I just spent the last 3-4 hours trying to retrieve a foreign key value using linq to entities and a stored procedure. Any advice is much appreciated.

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 is the foreign key value that i'm trying to reach. I can't get it so appear in the entity data model and I can't seem to get to it. e.event_types and e.event_typesReference are both null so things like e.event_typesReference.EntityKey.EntityKeyValues.First().Value.ToString() aren't working.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

人间☆小暴躁 2024-08-27 00:02:28

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

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

I don't see any .Include methods or Load methods on even_types and I'm assuming your returning IEnumerable from your _dbAno.Events_GetByDateRange(fromDate, toDate). Like Craig pointed out in the comments if your return type of GetByDateRange is IQueryable you'd be projecting and EF should eager load for you.

Just a reminder that implicit lazy loading isn't supported out of the box in Entity Framework 1.0. You'll need to manually load the event_types with Load() or use the Include method on ObjectQuery.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文