using MiAssessment.Core.Interfaces;
using MiAssessment.Model.Data;
using Microsoft.EntityFrameworkCore;
namespace MiAssessment.Core.Services;
///
/// 基础服务实现类
///
/// 实体类型
/// 主键类型
public abstract class BaseService : IBaseService where TEntity : class
{
protected readonly MiAssessmentDbContext _dbContext;
protected readonly DbSet _dbSet;
protected BaseService(MiAssessmentDbContext dbContext)
{
_dbContext = dbContext;
_dbSet = dbContext.Set();
}
///
public virtual async Task GetByIdAsync(TKey id)
{
return await _dbSet.FindAsync(id);
}
///
public virtual async Task> GetAllAsync()
{
return await _dbSet.ToListAsync();
}
///
public virtual async Task AddAsync(TEntity entity)
{
await _dbSet.AddAsync(entity);
await _dbContext.SaveChangesAsync();
return entity;
}
///
public virtual async Task UpdateAsync(TEntity entity)
{
_dbSet.Update(entity);
return await _dbContext.SaveChangesAsync() > 0;
}
///
public virtual async Task DeleteAsync(TKey id)
{
var entity = await GetByIdAsync(id);
if (entity == null)
return false;
_dbSet.Remove(entity);
return await _dbContext.SaveChangesAsync() > 0;
}
}