繁体   English   中英

首先使用Entity框架代码实现Generic Repository

[英]Implementing Generic Repository using Entity framework code first

我正在体验我第一次尝试实现通用存储库模式和框架单元。 我没有在项目中使用MVC。 请查看Generic Repository类中包含的此方法:

public virtual IEnumerable<TEntity> Get(
        Expression<Func<TEntity, bool>> filter = null,
        Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null,
        string includeProperties = "")
    {
        IQueryable<TEntity> query = dbSet;

        if (filter != null)
        {
            query = query.Where(filter);
        }

        foreach (var includeProperty in includeProperties.Split
            (new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
        {
            query = query.Include(includeProperty);
        }

        if (orderBy != null)
        {
            return orderBy(query).ToList();
        }
        else
        {
            return query.ToList();
        }
    }

它必须是一种强有力的方法,才能很好地实现干旱的目标。 我的问题是,我不能将结果命令为降序? 任何人都可以编写一些代码来帮助我吗? 谢谢,

看看这个: http//prodinner.codeplex.com/和这个http://efmvc.codeplex.com/ 这些项目是简单体系结构的好例子,您可以看到如何实现通用存储库以及如何使用它。

要按产品类别过滤,请尝试以下操作:

var repo = new GenericRepository<Product>();

var results = repo.Get(
    p => p.Category.Name == "Foo");

这里我们声明一个Generic Repository的实例,实体类型为Product,然后我们传递一个lamda表达式,该表达式对名称为“Foo”的每个Product类别执行过滤。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM