zoukankan      html  css  js  c++  java
  • mvc+dwz第三天

    再DAL类库中封装BaseDAL

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Data.Entity;
    using System.Data.Entity.Infrastructure;
    using System.Linq.Expressions;
    using System.Reflection;
    using Xiaowu.Model;
    namespace Xiaowu.DAL
    {
    public class BaseDAL<T> where T : class
    {
    StudentDBContext dbcontext = new StudentDBContext();
    /// <summary>
    /// IQueryable延迟加载集合,调用时才回去加载到内存
    /// List查找会立即加载到内存
    /// </summary>
    /// <returns></returns>
    public IQueryable<T> GetEntitys(Expression<Func<T, bool>> Lambdawhere)
    {
    return dbcontext.Set<T>().Where(Lambdawhere);
    }

    /// <summary>
    /// 新增
    /// </summary>
    /// <param name="entity"></param>
    /// <returns></returns>
    public int Add(T entity)
    {
    dbcontext.Set<T>().Add(entity);
    return dbcontext.SaveChanges();
    }

    /// <summary>
    /// 删除
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    public int Delete(int id)
    {
    //通过ID查询这个实体
    T entity = dbcontext.Set<T>().Find(id);
    dbcontext.Set<T>().Remove(entity);
    return dbcontext.SaveChanges();
    }

    /// <summary>
    /// 修改
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    public int Update(T entity)
    {
    //设置当前实体粘状态
    dbcontext.Entry(entity).State = System.Data.Entity.EntityState.Modified;
    return dbcontext.SaveChanges();
    }

    /// <summary>
    /// 修改2/add/2020/11/16
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    public int Update2(T entity)
    {
    dbcontext.Set<T>().Attach(entity);
    PropertyInfo[] props = entity.GetType().GetProperties();
    foreach (PropertyInfo prop in props)
    {
    if (prop.GetValue(entity, null) != null)
    {
    if (prop.GetValue(entity, null).ToString() == " ")
    dbcontext.Entry(entity).Property(prop.Name).CurrentValue = null;
    dbcontext.Entry(entity).Property(prop.Name).IsModified = true;
    }
    }
    return dbcontext.SaveChanges();
    }

    #region 分页查询/add/2020/11/16
    /// <summary>
    /// Entities的分页数据查询
    /// </summary>
    /// <typeparam name="S">Orderby根据排序的元素数据类型</typeparam>
    /// <param name="pageIndex">要查询到页码</param>
    /// <param name="pageSize">每页的条数</param>
    /// <param name="total">总条数</param>
    /// <param name="whereLambda">过滤数据的Lambda表达式</param>
    /// <param name="orderByLambda">指定排序规则的Lambda表达式</param>
    /// <param name="IsAsc">是否是升序排序?</param>
    /// <returns></returns>
    public IQueryable<T> GetPageEntities<S>(int pageIndex, int pageSize, out int total, Expression<Func<T, bool>> whereLambda, Expression<Func<T, S>> orderByLambda, bool IsAsc)
    {
    total = dbcontext.Set<T>().Where(whereLambda).Count();
    if (IsAsc)
    {
    return dbcontext.Set<T>().Where(whereLambda).OrderBy<T, S>(orderByLambda).Skip((pageIndex - 1) * pageSize).Take(pageSize).AsQueryable();

    }
    else
    {
    return dbcontext.Set<T>().Where(whereLambda).OrderByDescending<T, S>(orderByLambda).Skip((pageIndex - 1) * pageSize).Take(pageSize).AsQueryable();

    }
    }

    #endregion
    }
    }

  • 相关阅读:
    最大子数组求和并进行条件组合覆盖测试
    Ubuntu 16.04 c++ Google框架单元测试
    The directory '/home/stone/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If execu
    Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; then appstreamcli refresh > /dev/null; fi'
    个人博客作业三:微软小娜APP的案例分析
    补交 作业一
    补交 作业二:个人博客作业内容:需求分析
    嵌入式软件设计第12次实验报告
    嵌入式软件设计第11次实验报告
    嵌入式软件设计第10次实验报告
  • 原文地址:https://www.cnblogs.com/wugh8726254/p/14002567.html
Copyright © 2011-2022 走看看