Fish.Domains/Repository.cs

(开头部分) 6KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using Fish.Core.Query;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;

namespace Fish.Domains
{
    public class Repository<T> : IRepository<T>
        where T : class, new()
    {
        private UnitOfWork UnitOfWork;
        public Repository(IUnitOfWork unitOfWork)
        {
            UnitOfWork = (UnitOfWork)unitOfWork;
        }
        private DbSet<T> dbSet;
        private DbSet<T> _dbSet
        {
            get
            {
                if (dbSet == null)
                    dbSet = UnitOfWork.Set<T>();
                return dbSet;
            }
        }

        public IQueryable<T> Query => _dbSet;

        public T FindById(params object[] keyValues)
        {
            return _dbSet.Find(keyValues);
        }
        public int Remove(T t)
        {
            UnitOfWork.Entry(t).State = EntityState.Deleted;
            _dbSet.Remove(t);
            return UnitOfWork.Commit();

        }
        public int Remove(List<T> list)
        {
            list.ForEach(item =>
            {
                _dbSet.Remove(item);
            });
            return UnitOfWork.Commit();
        }
        public int Remove(Expression<Func<T, bool>> predicate)
        {
            _dbSet.Where(predicate).ToList().ForEach(item =>
            {
                _dbSet.Remove(item);
            });
            return UnitOfWork.Commit();
        }
        public T Insert(T t)
        {
后面还有 158 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。