MVC4+EF:项目实战(一)

1.添加框架 

Model,DAL,IDAL,DALFactory,BLL,IBLL,Common,UI 层

2,在Model层中添加EF框架。保存,让实体映射到Model层。

3.搭设框架IDAL层的IUserInfoDal,公共的正删改查分页方法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CZBW.BookShop.Model;

namespace CZBW.BookShop.IDAL
{
    public interface IUserInfoDal
    {
        //查询数据库,传入参数是Lambda表达式
        IQueryable<UserInfo> LoadEntities(System.Linq.Expressions.Expression<Func<UserInfo,bool>>whereLambda );
        IQueryable<UserInfo> LoadPageEntities<s>(int pageIndex, int pageSize, out int totalCount,System.Linq.Expressions.Expression<Func<UserInfo,s>> orderByLambda,System.Linq.Expressions.Expression<Func<UserInfo,bool>> whereLambda,bool isAsc);
        bool DeleteEntity(UserInfo entity);
        bool UpdateEntity(UserInfo entity);
        UserInfo AddEntity(UserInfo entity);
    }
}
将IUserInfoDal的内容替换为泛型,剪切到IBaseDal中,作为通用接口,同事IUserInfoDal继承IBaseDal

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CZBW.BookShop.Model;

namespace CZBW.BookShop.IDAL
{
   public  interface IBaseDal<T> where T:class,new()
    {
        //查询数据库,传入参数是Lambda表达式
        IQueryable<T> LoadEntities(System.Linq.Expressions.Expression<Func<T, bool>> whereLambda);
        IQueryable<T> LoadPageEntities<s>(int pageIndex, int pageSize, out int totalCount, System.Linq.Expressions.Expression<Func<T, s>> orderByLambda, System.Linq.Expressions.Expression<Func<T, bool>> whereLambda, bool isAsc);
        bool DeleteEntity(T entity);
        bool UpdateEntity(T entity);
        T AddEntity(T entity);
    }
}

DAL层添加UserInfoDal实现IUserInfoDal

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NCUT.BookShop.IDAL;
using NCUT.BookShop.Model;
using System.Data;
namespace NCUT.BookShop.DAL
{
   public  class UserInfoDal:IUserInfoDal
    {
       NCUTBookShopDBEntities db = new NCUTBookShopDBEntities();
        public IQueryable<Model.UserInfo> LoadEntities(System.Linq.Expressions.Expression<Func<Model.UserInfo, bool>> whereLambda)
        {
            return db.UserInfo.Where(whereLambda);
        }

        public IQueryable<Model.UserInfo> LoadPageEntities<s>(int pageIndex, int pageSize, out int totalCount, System.Linq.Expressions.Expression<Func<Model.UserInfo, s>> orderByLambda, System.Linq.Expressions.Expression<Func<Model.UserInfo, bool>> whereLambda, bool isAsc)
        {
            var temp = db.UserInfo.Where<UserInfo>(whereLambda);//过滤
            totalCount = temp.Count();
            if (isAsc)//升序
            {
                temp =
                    temp.OrderBy<UserInfo, s>(orderByLambda)
                        .Skip<UserInfo>((pageIndex - 1)*pageSize)
                        .Take<UserInfo>(pageSize);
            }
            else
            {
                temp =
    temp.OrderByDescending<UserInfo, s>(orderByLambda)
        .Skip<UserInfo>((pageIndex - 1) * pageSize)
        .Take<UserInfo>(pageSize);
            }
            return temp;
        }

        public bool DeleteEntity(Model.UserInfo entity)
        {
            db.Entry<UserInfo>(entity).State = System.Data.Entity.EntityState.Deleted;

            return db.SaveChanges() > 0;
        }

        public bool UpdateEntity(Model.UserInfo entity)
        {
            db.Entry<UserInfo>(entity).State = System.Data.Entity.EntityState.Modified;

            return db.SaveChanges() > 0;
        }

        public Model.UserInfo AddEntity(Model.UserInfo entity)
        {
            db.UserInfo.Add(entity);
            db.SaveChanges();
            return entity;
        }
    }
}

将UserInfoDal抽象为公共基类BaseDal,剪切

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NCUT.BookShop.Model;

namespace NCUT.BookShop.DAL
{
   public  class BaseDal<T>where T:class ,new()
    {
        NCUTBookShopDBEntities db = new NCUTBookShopDBEntities();
        public IQueryable<T> LoadEntities(System.Linq.Expressions.Expression<Func<T, bool>> whereLambda)
        {
            return db.Set<T>().Where<T>(whereLambda);
        }

        public IQueryable<T> LoadPageEntities<s>(int pageIndex, int pageSize, out int totalCount, System.Linq.Expressions.Expression<Func<T, s>> orderByLambda, System.Linq.Expressions.Expression<Func<T, bool>> whereLambda, bool isAsc)
        {
            var temp = db.Set<T>().Where<T>(whereLambda);//过滤
            totalCount = temp.Count();
            if (isAsc)//升序
            {
                temp =
                    temp.OrderBy<T, s>(orderByLambda)
                        .Skip<T>((pageIndex - 1) * pageSize)
                        .Take<T>(pageSize);
            }
            else
            {
                temp =
    temp.OrderByDescending<T, s>(orderByLambda)
        .Skip<T>((pageIndex - 1) * pageSize)
        .Take<T>(pageSize);
            }
            return temp;
        }

        public bool DeleteEntity(T entity)
        {
            db.Entry<T>(entity).State = System.Data.Entity.EntityState.Deleted;

            return db.SaveChanges() > 0;
        }

        public bool UpdateEntity(T entity)
        {
            db.Entry<T>(entity).State = System.Data.Entity.EntityState.Modified;

            return db.SaveChanges() > 0;
        }

        public T AddEntity(T entity)
        {
            db.Set<T>().Add(entity);
            db.SaveChanges();
            return entity;
        }
    }
}
UserInfoDal继承BaseDal

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NCUT.BookShop.IDAL;
using NCUT.BookShop.Model;
using System.Data;
namespace NCUT.BookShop.DAL
{
   public  class UserInfoDal:BaseDal<UserInfo>,IUserInfoDal
    {
    
    }
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值