Join or Mutible DBContext Repository Generic c#

前端 未结 2 1749
我在风中等你
我在风中等你 2020-12-22 14:04

I have repository generic where I do method as Get,Update,Insert.

I get a data from table in data base I use this method.

 public IEnumerable

        
相关标签:
2条回答
  • 2020-12-22 14:21

    I find a form get this result for example Product and Category in repository Generic through include.

     public IEnumerable<typeEntity> Get<typeEntity>(Expression<Func<typeEntity, bool>> newObjectEntity,int page, int rowsByPage, string include) where typeEntity : class
        {
           List<typeEntity> Result = null;
                Result = Context.Set<typeEntity>().Where(newObjectEntity).include(include).OrderBy(m => true).Skip<typeEntity>(5 * (page - 1)).Take<typeEntity>(rowsByPage).ToList<typeEntity>();
            return Result;
        }
    

    With include you can string for example Product->Category and get this object.

    0 讨论(0)
  • 2020-12-22 14:30

    The solution you found is slow because the repository method is materializing/executing the query immediately instead of allowing deferred execution to occur. Try removing the ".ToList()" from the query within the repository method:

    public IEnumerable<typeEntity> Get<typeEntity>(Expression<Func<typeEntity, bool>> newObjectEntity,int page, int rowsByPage) where typeEntity : class
    {
       IEnumerable<typeEntity> Result = null;
            Result = Context.Set<typeEntity>().Where(newObjectEntity).OrderBy(m => true).Skip<typeEntity>(5 * (page - 1)).Take<typeEntity>(rowsByPage);
        return Result;
    }
    

    This will allow you to compose and construct higher order queries without pulling the whole table into memory immediately.

    0 讨论(0)
提交回复
热议问题