zoukankan      html  css  js  c++  java
  • EntityFramework Core 封装

    public class EntityBaseRepository<T> : IEntityBaseRepository<T>

    where T : class, IEntityBase, new()

    {

    private SchedulerContext _context;

    #region Properties

    public EntityBaseRepository(SchedulerContext context)

    {

    _context = context;

    }

    #endregion

    public virtual IEnumerable<T> GetAll()

    {

    return _context.Set<T>().AsEnumerable();

    }

    public virtual int Count()

    {

    return _context.Set<T>().Count();

    }

    public virtual IEnumerable<T> AllIncluding(params Expression<Func<T, object>>[] includeProperties)

    {

    IQueryable<T> query = _context.Set<T>();

    foreach (var includeProperty in includeProperties)

    {

    query = query.Include(includeProperty);

    }

    return query.AsEnumerable();

    }

    public T GetSingle(int id)

    {

    return _context.Set<T>().FirstOrDefault(x => x.Id == id);

    }

    public T GetSingle(Expression<Func<T, bool>> predicate)

    {

    return _context.Set<T>().FirstOrDefault(predicate);

    }

    public T GetSingle(Expression<Func<T, bool>> predicate, params Expression<Func<T, object>>[] includeProperties)

    {

    IQueryable<T> query = _context.Set<T>();

    foreach (var includeProperty in includeProperties)

    {

    query = query.Include(includeProperty);

    }

    return query.Where(predicate).FirstOrDefault();

    }

    public virtual IEnumerable<T> FindBy(Expression<Func<T, bool>> predicate)

    {

    return _context.Set<T>().Where(predicate);

    }

    public virtual void Add(T entity)

    {

    EntityEntry dbEntityEntry = _context.Entry<T>(entity);

    _context.Set<T>().Add(entity);

    }

    public virtual void Update(T entity)

    {

    EntityEntry dbEntityEntry = _context.Entry<T>(entity);

    dbEntityEntry.State = EntityState.Modified;

    }

    public virtual void Delete(T entity)

    {

    EntityEntry dbEntityEntry = _context.Entry<T>(entity);

    dbEntityEntry.State = EntityState.Deleted;

    }

    public virtual void DeleteWhere(Expression<Func<T, bool>> predicate)

    {

    IEnumerable<T> entities = _context.Set<T>().Where(predicate);

    foreach(var entity in entities)

    {

    _context.Entry<T>(entity).State = EntityState.Deleted;

    }

    }

    public virtual void Commit()

    {

    _context.SaveChanges();

    }

    }

  • 相关阅读:
    SmartSql = Dapper + MyBatis + Cache(Memory | Redis) + ZooKeeper + R/W Splitting + ......
    SmartSql For Asp.Net Core 最佳实践
    如何通过本地化事件正确实现微服务内部强一致性,事件总线跨微服务间最终一致性
    Netty入门搭建
    IO同步阻塞与同步非阻塞
    NIO的缓冲区、通道、选择器关系理解
    SpringBoot整合ActiveMQ
    ActiveMQ的介绍及使用
    nginx入门(一)
    垃圾回收器及tomcat调优
  • 原文地址:https://www.cnblogs.com/94cool/p/5912088.html
Copyright © 2011-2022 走看看