使用谓词查找所有行?

发布于 2024-12-10 10:41:20 字数 824 浏览 0 评论 0原文

我有以下代码,我使用 EF 4.1 和工作单元中的存储库模式。 但是,因为我不太了解表达式和谓词的工作原理,所以我问以下问题:

使用下面的代码,是否有更好的方法来查找所有行?

    public ActionResult Index()
    {
        var positions = unitOfWork.PositionRepository
                                  .Find(p => p.PositionID != null);

        return View(positions.ToList());
    }

我的工作单元和存储库基于这里 http://www.asp.net/entity-framework/tutorials/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application< /a>

我尝试过这个:

public virtual List<TEntity> GetAll()
        {
            return context.Set<TEntity>.ToList();
        }

I have the following code, I am using the repository pattern in EF 4.1 and Unit of Work.
However because I dont understand very much how Expression and Predicates works I ask the following:

With the code below, is there a better way to find all rows?

    public ActionResult Index()
    {
        var positions = unitOfWork.PositionRepository
                                  .Find(p => p.PositionID != null);

        return View(positions.ToList());
    }

I based my UnitofWork and Repository from here
http://www.asp.net/entity-framework/tutorials/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application

I tried this:

public virtual List<TEntity> GetAll()
        {
            return context.Set<TEntity>.ToList();
        }

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

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

发布评论

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

评论(1

酷遇一生 2024-12-17 10:41:20

如果您想要所有行,您只需在集合上调用此方法即可:

context.Positions.ToList();

因此只需将方法添加到您的存储库中即可公开此结果。

如果是通用(错误)存储库,请使用以下命令:

context.Set<Position>().ToList();

If you want all rows you simply have to call this on your set:

context.Positions.ToList();

So simply add method to your repository exposing this result.

In case of generic (wrong) repository use this:

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