实体框架代码优先的IQueryable

编程入门 行业动态 更新时间:2024-10-26 10:34:38
本文介绍了实体框架代码优先的IQueryable的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在使用Entity Framework Code First,但遇到了一个小障碍.我有一个这样定义的人"类:

I am using Entity Framework Code First and ran into a small road block. I have a class "Person" defined as such:

public class Person { public Guid Id { get; set; } public virtual ICollection<History> History { get; set; } }

以及这样定义的历史"类:

and a class "History" defined as such:

public class History { public Guid Id { get; set; } public virtual Person Owner { get; set; } public DateTime OnDate { get; set; } }

但是,当我打电话时:

IEnumerable<History> results = person.History .OrderBy(h => h.OnDate) .Take(50) .ToArray();

似乎会拉取该人的所有历史记录,然后在内存中对其进行排序.关于我所缺少的内容有什么建议吗?

It appears to pull all of the history for the person, then order it and such in memory. Any recommendations on what I'm missing?

提前谢谢!

推荐答案

因为您要查询EF给出的IEnumerable(即LINQ到对象)而不是IQueryable(即LINQ到实体).

Because you are querying an IEnumerable (ie: LINQ to Objects) not IQueryable (ie: LINQ to Entities) given by EF.

您应该使用

IEnumerable<History> results = context.History.Where(h => h.Person.Id = "sfssd").OrderBy(h => h.OnDate).Take(50)

更多推荐

实体框架代码优先的IQueryable

本文发布于:2023-07-27 12:08:39,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1222358.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:实体   框架   代码   IQueryable

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!