OL.FrameCore.Infrastructure/UnitOfWork/RepositoryBase.cs
(开头部分) 8KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
namespace OL.FrameCore.Infrastructure.UnitOfWork
{
/// <summary>
/// Repository基类
/// </summary>
/// <typeparam name="TEntity"></typeparam>
public class RepositoryBase<TEntity> : IRepositoryBase<TEntity> where TEntity : class
{
protected DbContext _dbContext;
public IQueryable<TEntity> Table => _dbContext.Set<TEntity>().AsQueryable();
public IQueryable<TEntity> TableNoTracking => _dbContext.Set<TEntity>().AsNoTracking().AsQueryable();
public RepositoryBase(DbContext dbContext)
{
_dbContext = dbContext;
}
public List<TEntity> GetAllList()
{
return _dbContext.Set<TEntity>().AsNoTracking().ToList();
}
public async Task<List<TEntity>> GetAllListAsync()
{
return await _dbContext.Set<TEntity>().AsNoTracking().ToListAsync();
}
public List<TEntity> GetList(Expression<Func<TEntity, bool>> predicate, bool isNoTracking = true)
{
var query = isNoTracking ? _dbContext.Set<TEntity>().AsNoTracking() : _dbContext.Set<TEntity>();
return query.Where(predicate).ToList();
}
public async Task<List<TEntity>> GetListAsync(Expression<Func<TEntity, bool>> predicate, bool isNoTracking = true)
{
var query = isNoTracking ? _dbContext.Set<TEntity>().AsNoTracking() : _dbContext.Set<TEntity>();
return await query.Where(predicate).ToListAsync();
}
public PageData<TEntity> GetPageList(Expression<Func<TEntity, bool>> predicate, int pageIndex, int pageSize, bool isNoTracking = true)
{
PageData<TEntity> pageData = new PageData<TEntity>();
var query = isNoTracking ? _dbContext.Set<TEntity>().AsNoTracking() : _dbContext.Set<TEntity>();
pageData.Items = query.Where(predicate).Skip(pageIndex * pageSize).Take(pageSize).ToList();
pageData.PageIndex = pageIndex;
pageData.PageSize = pageSize;
pageData.ItemsCount = query.Count();
return pageData;
}
public async Task<PageData<TEntity>> GetPageListAsync(Expression<Func<TEntity, bool>> predicate, int pageIndex, int pageSize, bool isNoTracking = true)
{
PageData<TEntity> pageData = new PageData<TEntity>();
后面还有 155 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
