我正在尝试实现通用存储库模式和框架单元。我不在手头的项目上使用MVC。
请看一下通用存储库类中包含的此方法:

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();
        }
    }


它必须是一种有效的方法,并且可以很好地完成DRY的目标。
我的问题是,我不能将结果按降序排列?任何人都可以编写一些代码行来帮助我吗?谢谢,

最佳答案

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

var repo = new GenericRepository<Product>();

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


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

关于c# - 首先使用实体​​框架代码实现通用存储库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16611031/

10-11 09:26